已归录

参考文档:https://dev.mysql.com/doc/refman/【5.6|5.7|8.0】/en/binary-installation.html

5.6 和 5.7 的安装方法是一样的,只是初始化命令不一样。5.6 初始化后无密码。
5.7 和 8.0 的安装方法是一样的。

以前二进制软件包名形如 mysql-VERSION-OS.tar.gz
现在新的二进制包名形如 mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz。

二进制包安装很简单,总体思路是直接解压包即可,手动创建相应的用户与配置文件,初始化实例即可。具体过程以官方文档为准。

下面以 mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz 为例演示安装过程。

创建相关用户与组

# groupadd mysql
# useradd -r -g mysql -s /bin/false mysql

安装软件

# cd /usr/local
# tar zxvf /root/mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz
# ln -s mysql-5.7.23-linux-glibc2.12-x86_64 mysql
# cd mysql
# mkdir mysql-files
# chown mysql:mysql mysql-files
# chmod 750 mysql-files

初始化实例和SSL

重要: locate 检查是否存在 my.cnf 文件和 ~/.my.cnf 文件,有则删除。

不指定 DATADIR,则默认是当前目录下的 data 目录。

# bin/mysqld --initialize [--innodb_undo_tablespaces=3 --datadir=/usr/local/mysql/3306/ --basedir=/usr/local/mysql/] --user=mysql (注意记录下生成的随机密码)

如果想初始化后密码为空,将 --initialize 换成 --initialize-insecure 即可。

# bin/mysql_ssl_rsa_setup --uid=mysql [--datadir=/usr/local/mysql/3306/]
一定要加上 --uid=mysql,否则生成的钥匙文件是 root 用户的。    

启动实例

方法一:

# cp support-files/mysql.server /etc/init.d/mysqld  [optional]
# chkconfig --add mysqld  [optional]
# service mysqld restart  [optional]

方法二:

# nohup bin/mysqld_safe [--defaults-file=/etc/my_3306.cnf] &  (参数文件必须作为第1个选项)

即使不使用 nohup,也不使用 &,关闭终端后,mysqld_safe和mysqld进程也不会退出。

连接数据库

# bin/mysql -uroot -p [--socket=xxxx]

连接数据库后,强制必须首先修改密码:

mysql> alter user user() identified by "oracle";  <-- 5.7 及以上
或者:
mysql> set passwd='oracle';        <-- 5.6 
mysql> set password=password('oracle');        <-- 5.7

5.6 有个 test 库,5.7 去掉了 test 库,是出于安全考虑。
5.7 新增了一个 sys 库,向 Oracle 看齐。
5.7 初始化后 root 密码为空,5.7 初始化后会生成一个随机初始密码。

如果使用 root 用户按照上面的方法进行安装,MySQL 软件目录及其下子目录属主是 root.root,权限是 755(除手工创建的 mysql-files 目录外)。有些网上的教程安装出来的目录属主是 mysql.mysql,建议修改为 root.mysql,仅保留 DATADIR 属主为 mysql.mysql 即可。

-- By 许望(RHCA、OCM、VCP)
最后修改:2023 年 09 月 20 日 02 : 48 PM
如果觉得我的文章对你有用,请随意赞赏