已索引
推荐使用Genetic 发行包(即已经编译好的二进制包),简单灵活。
参考文档:https://dev.mysql.com/doc/refman/【5.6|5.7|8.0】/en/binary-installation.html
5.6、5.7、8.0 的安装方法是一样的。
5.6 和 5.7/8.0 的区别只是初始化命令不一样。另外,5.6 初始化后无密码。
以前二进制软件包名形如 mysql-VERSION-OS.tar.gz。
现在新的二进制包名形如 mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz。
二进制包安装很简单,总体思路是直接解压包,手动创建相应的用户与配置文件,初始化实例即可。具体过程以官方文档为准。
下面以 mysql-5.7.44-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.44-linux-glibc2.12-x86_64.tar.gz
# ln -s mysql-5.7.44-linux-glibc2.12-x86_64 mysql
# cd mysql
# mkdir mysql-files
# chown mysql:mysql mysql-files
# chmod 750 mysql-files
初始化实例
重要:locate 检查是否存在 my.cnf 文件和 ~/.my.cnf 文件,有则删除。
准备数据库目录:
# mkdir /opt/database
# chown mysql.mysql /opt/database
# chmod 750 /opt/database
初始化时如果不指定 DATADIR,则默认是当前目录下的 data 目录。
如果想初始化后密码为空,将 --initialize 换成 --initialize-insecure 即可。
如果有标准化的参数文件,可以使用下面的命令初始化:
# bin/mysqld --initialize --user=mysql (root 随机密码在 error log 里)
如果没有参数文件,可以使用下面的命令初始化:
# bin/mysqld --initialize --innodb_undo_tablespaces=3 --datadir=/opt/database/3306/ --basedir=/usr/local/mysql/ --user=mysql (注意记录屏幕上显示的 root 随机密码)
如果想重新初始化,直接删除 datadir 目录,再次执行初始化命令即可。
配置 SSL
官方文档:https://dev.mysql.com/doc/refman/5.7/en/mysql-ssl-rsa-setup.html
删除初始化时生产的文件:
# cd /opt/database/3306
# rm -f ca.pem server-cert.pem server-key.pem private_key.pem public_key.pem
生成新的文件:
# cd /usr/local/mysql
# bin/mysql_ssl_rsa_setup --uid=mysql --verbose [--datadir=/opt/database/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.7
mysql> set password=password('oracle'); <-- 5.6
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 即可。