数据库


MariaDB二进制包安装

<p>systemd包安装 <a href="https://www.jianshu.com/p/9559670faf74">https://www.jianshu.com/p/9559670faf74</a> <a href="https://blog.csdn.net/ncyind/article/details/107128235">https://blog.csdn.net/ncyind/article/details/107128235</a></p> <h3>1、官网下载二进制包并上传至/opt目录下</h3> <p><a href="https://downloads.mariadb.org/">https://downloads.mariadb.org/</a> mariadb-10.5.1-linux-systemd-x86_64.tar.gz</p> <h3>2、准备工作</h3> <p>安装依赖包,否则msyql -p 登陆会报错。</p> <pre><code class="language-bash">#CentOS8 dnf -y install libncurses* #CentOS7默认最小化安装已经安装此包 ##useradd -s /sbin/nologin -M mysql #不需执行</code></pre> <h3>3.创建mysql用户和组</h3> <pre><code class="language-bash">groupadd mysql useradd mysql -g mysql -d /usr/local/mysql -s /sbin/nologin</code></pre> <pre><code class="language-bash">tar zxvf /opt/mariadb-10.5.1-linux-systemd-x86_64.tar.gz -C /usr/local mv /usr/local/mariadb-10.5.1-linux-systemd-x86_64/* /usr/local/mysql/ rmdir /usr/local/mariadb-10.5.1-linux-systemd-x86_64 chown -R mysql:mysql /usr/local/mysql mkdir /data chown -R mysql:mysql /data/</code></pre> <h3>4、初始化数据库</h3> <pre><code class="language-bash">/usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/data</code></pre> <h3>5、配置启动脚本</h3> <pre><code class="language-bash">cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld vim /etc/init.d/mysqld basedir=/usr/local/mysql datadir=/data/mysql/data</code></pre> <h3>6、配置环境变量</h3> <pre><code class="language-bash">echo 'export PATH=/usr/local/mysql/bin:$PATH' &gt; /etc/profile.d/mysql.sh source /etc/profile.d/mysql.sh</code></pre> <h3>7、修改配置文件</h3> <p>vim /etc/my.cnf</p> <pre><code class="language-bash">[client] port = 3306 default-character-set=utf8mb4 socket = /tmp/mysql.sock [mysqld] character-set-server = utf8mb4 port = 3306 socket = /tmp/mysql.sock datadir = /data basedir = /usr/local/mysql # innodb_fle_per_table = on skip_name_resolve = on slow-query-log= 1 long_query_time = 2 lower_case_table_names = 1 innodb_log_file_size = 512M default-time_zone = '+8:00' connect_timeout = 10 wait_timeout = 28800 interactive_timeout = 28800 back_log = 1024 event_scheduler = OFF open_files_limit = 65535 </code></pre> <p><del>new,目录分得细一点,还未验证在整个文档中是否有效。</del></p> <p><del>[client]</del> <del>port = 3306</del> <del>socket = /data/mysql/socket/mysqld.sock</del> <del>default-character-set = utf8mb4</del></p> <p><del>[mysqld]</del> ~~basedir = /usr/local/mysql/ datadir = /data/mysql/data tmpdir = /data/mysql/tmp socket = /data/mysql/socket/mysqld.sock log_bin = /data/mysql/log/mysql-bin.log pid-file = /data/mysql/socket/mysql.pid character-set-server = utf8mb4 skip_name_resolve = on slow-query-log= 1 long_query_time = 2 lower_case_table_names = 1 innodb_log_file_size = 512M default-time_zone = '+8:00' connect_timeout = 10 wait_timeout = 28800 interactive_timeout = 28800~~ ~~back_log = 1024 event_scheduler = OFF~~ <del>open_files_limit = 65535</del></p> <h3>8、启动服务</h3> <pre><code class="language-bash">/etc/init.d/mysqld start</code></pre> <h3>9.随机启动设置</h3> <pre><code class="language-bash">chkconfig --add mysqld chkconfig mysqld on</code></pre> <h3>10.运行安全初始化脚本</h3> <p>运行安全初始化脚本,设置root口令、禁用匿名登陆、禁用远程主机登陆、删除test数据库,并立即生效(根据提示操作)。</p> <pre><code class="language-bash">/usr/local/mysql/bin/mysql_secure_installation</code></pre> <h4>11、配置允许root远程登录</h4> <p><a href="https://www.cnblogs.com/goxcheer/p/8797377.html">https://www.cnblogs.com/goxcheer/p/8797377.html</a></p> <p>MySql-Server 出于安全方面考虑默认只允许本机(localhost, 127.0.0.1)来连接访问.</p> <pre><code class="language-bash">[root@localhost etc]# mysql -u root -p</code></pre> <p>连接后,操作mysql数据库</p> <pre><code class="language-bash">MariaDB [mysql]&gt; use mysql;</code></pre> <p>查询用户命令</p> <pre><code class="language-bash">MariaDB [mysql]&gt; select User,authentication_string,Host from user; +-------------+-----------------------+-----------+ | User | authentication_string | Host | +-------------+-----------------------+-----------+ | mariadb.sys | | localhost | | root | invalid | localhost | | mysql | invalid | localhost | +-------------+-----------------------+-----------+</code></pre> <p>这里也可以看出host默认都是localhost访问权限 接下来就是最重要的部分了:</p> <pre><code class="language-bash">MariaDB [mysql]&gt; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456';</code></pre> <p>这里的123456为你给新增权限用户设置的密码,%代表所有主机,也可以具体到你的主机ip地址</p> <pre><code class="language-bash">MariaDB [mysql]&gt; flush privileges;</code></pre> <p>这一步一定要做,不然无法成功! 这句表示从mysql数据库的grant表中重新加载权限数据 因为MySQL把权限都放在了cache中,所以在做完更改后需要重新加载。 执行完这两步,再次查询用户表命令:</p> <pre><code class="language-bash">MariaDB [mysql]&gt; select User,authentication_string,Host from user; +-------------+-------------------------------------------+-----------+ | User | authentication_string | Host | +-------------+-------------------------------------------+-----------+ | mariadb.sys | | localhost | | root | invalid | localhost | | mysql | invalid | localhost | | root | *4F9D3C4DF16AA04558189C507A79CEA7DB63C2B5 | % | +-------------+-------------------------------------------+-----------+</code></pre> <p>发现多了一个用户,该用户所有的主机都可以访问,此时再次用sqlyog访问连接成功!</p> <h4>12、修改root密码</h4> <pre><code class="language-bash">alter user 'root'@'localhost' identified by 'newpasswd';</code></pre> <h4>13、修改字符集</h4> <p>参考 第7步,修改后查看</p> <pre><code class="language-bash">MariaDB [(none)]&gt; show variables like '%char%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8mb4 | | character_set_connection | utf8mb4 | | character_set_database | utf8mb4 | | character_set_filesystem | binary | | character_set_results | utf8mb4 | | character_set_server | utf8mb4 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.001 sec)</code></pre> <p>使用navicat for mysql时,在Navicat中右键 数据库→连接属性→高级,将编码选为自动即可! navicat连接成功后,在navicat中执行</p> <pre><code class="language-bash">show variables like '%char%';</code></pre> <pre><code class="language-bash">Variable_name Value ------------------------ ----------------------------------- character_set_client utf8 character_set_connection utf8 character_set_database utf8mb4 character_set_filesystem binary character_set_results utf8 character_set_server utf8mb4 character_set_system utf8 character_sets_dir /home/mysql/mysql/share/charsets/ </code></pre> <p>看结果是否相同。</p> <h4>14 Linux本地执行mysql脚本</h4> <pre><code class="language-bash">mysql -uroot -phz310012 &lt; EasyTong_MySQL_01_CreateDataBase.sql mysql -uroot -phz310012 easytongdb &lt; ./EasyTong_MySQL_02_CreateTable.sql ......</code></pre> <p>说明: 如果使用 -h IP 参数,需在mysql服务端添加客户端IP; 登录mysql数据库执行</p> <pre><code class="language-bash">source /opt/etdbscripts/EasyTong_MySQL_02_CreateTable.sql;</code></pre>

页面列表

ITEM_HTML