Centos 7 二进制MySQL 8使用教程
- 安装
- 下载MySQL依赖库libaio
- 下载MySQL依赖库ncurses
- 下载二进制发行版本
- 创建mysql用户和用户组
- 解压安装包,并放到指定位置,并修改目录拥有者和权限
- 添加环境变量
- 创建数据目录(不可以直接创建datadir目录,否则在初始化时会报错)
- 修改配置文件my.cnf(简单配置)
- 使用参数--validate-config检验配置文件
- 初始化
- 安全启动
- 测试(可忽略)
- 使用mysql_secure_installation提高MySQL数据库安装安全性
- 使用mysql客服端连接MySQL server
- 修改root密码
- 忘记root密码
- 升级(就地升级)
安装
下载MySQL依赖库libaio
$> yum install -y libaio # install library
下载MySQL依赖库ncurses
$> yum install -y ncurses ncurses-devel
下载二进制发行版本
$> wget https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
创建mysql用户和用户组
$> groupadd mysql
$> useradd -r -g mysql -s /bin/false mysql
解压安装包,并放到指定位置,并修改目录拥有者和权限
$> tar xvf /path/to/mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
$> mv mysql-8.0.27-linux-glibc2.12-x86_64 /usr/local/mysql
$> chown -R mysql:mysql /usr/local/mysql
$> chmod -R 750 /usr/local/mysql
添加环境变量
$> export PATH=$PATH:/usr/local/mysql/bin
创建数据目录(不可以直接创建datadir目录,否则在初始化时会报错)
$> mkdir -p /data
修改配置文件my.cnf(简单配置)
[mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql #指定数据目录,不可以手动创建,否则初始化时报错
socket=/tmp/mysql.sock
使用参数–validate-config检验配置文件
$> mysqld --defaults-file=/etc/my.cnf --validate-config
如果未发现错误,则服务器以退出代码 0 终止。如果发现错误,服务器将显示诊断消息并以退出代码 1 终止并在终端打印错误信息
初始化
- 用于–initialize“ 默认安全”安装(即包括生成随机初始 root密码)
- 使用–initialize-insecure,不会root生成密码
$> bin/mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql
$> bin/mysqld --defaults-file=/etc/my.cnf --initialize-insecure --user=mysql
若初始化时使用了–initialize-insecure,连接后修更新root密码
$> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
初始化时配置文件不应许有多余的文件,若配置文件中数据目录和命令中指定的路径–datadir=/path不一致会报错,数据目录也不可以提前手动创建,否则也会报错,出现该错误直接删除数据目录再初始化即可,配置文件中若指定了log文件路径,文件不存在时也会报错
安全启动
$> mysqld_safe &
测试(可忽略)
$> ps aux|grep mysqld #查看mysqld进程是否正在运行
$> mysqladmin version #输出MySQL版本信息
$> mysqlshow #查看MySQL数据库中所有的database
$> mysqlshow mysql #查看database mysql中的所有table
$> mysql -e "SELECT User, Host, plugin FROM mysql.user" mysql #测试客户端查询
$> mysqladmin shutdump #尝试关闭MySQL服务
$> bin/mysqld_safe --user=mysql & #重启服务
使用mysql_secure_installation提高MySQL数据库安装安全性
$> mysql_secure_installation
根据输出完成配置
- 设置root密码
- 控制root用户是否可以远程连接
- 删除匿名用户
- 删除test库
使用mysql客服端连接MySQL server
$> mysql -uroot -p -S /tmp/mysql.sock
修改root密码
- 初始化后的密码存在错误日志中,通过日志查看密码,或在初始化时标准输出复制密码,无密码可直接连接
- root使用密码 连接到服务器
- 修改密码
$> mysql -u root -p
Enter password: (enter the random root password here)
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
mysql> flush privileges;
忘记root密码
- 关闭MySQL服务,添加参数–skip-grant-tables重启
- 无密码连接
- 修改
$> mysqld_safe --user=mysql --skip-grant-tables &
$> mysql -u root
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
mysql> flush privileges;
升级(就地升级)
- 下载符合要求的二进制包XXX.tar.xz,并上传到指定的服务器
- 解压替换旧的basedir文件
$> tar xvf xxx.tar.xz
$> rm -rf /usr/local/mysql
$> mv xxx /user/local/mysql
$> chown -R mysql:mysql /usr/local/mysql
$> chmod -R 750 /usr/local/mysql
- 使用旧的配置文件与数据目录启动新版本MySQL服务(默认读取配置文件/etc/my.cnf)(无需初始化)
$> mysqld_safe &