已归录
参考文档: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 即可。