说明: 1.采用本例方式可同一台服务器上安装多个MySql实例 2.本实例的MySql安装路径在"/opt/mysql/mysql8_3306"下,所有的命令操作均以此目录为前提
1.安装包准备
MySQL最新版本下载地址
[root@lwej opt]# rpm -qa | grep glibc
3.下载MySql
3.1 选择对应的版本:
3.2 下一步:
4.环境检查
4.1 mysql和mariadb检查
4.1.1 检查是否已经安装mysql或者mariadb
[root@lwej ~]# rpm -qa | grep mysql
[root@lwej ~]# rpm -qa | grep mariadb
4.1.2 卸载已存在的mysql或mariadb
不存在则跳过此步
[root@lwej ~]# rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
4.2 用户和用户组检查
4.2.1 检查mysql用户和用户组
# 检查是否有mysql用户组
[root@lwej ~]# grep mysql /etc/group
# 检查是否有mysql用户
[root@lwej ~]# grep mysql /etc/passwd
4.2.2 新增mysql用户
创建mysql用户会自动创建mysql用户组,如果已存在则跳过此步
# 新增mysql用户
[root@lwej ~]# useradd mysql
# 再次检查是否有mysql用户
[root@lwej ~]# grep mysql /etc/passwd
# 再次检查是否有mysql用户组
[root@lwej ~]# grep mysql /etc/group
5.上传服务器并解压缩
5.1 上传到服务器"/opt"目录下
# 进入"/opt"目录下
[root@lwej ~]# cd /opt/
# 查看
[root@lwej opt]# ls
5.2 解压缩mysql压缩包
"tar.xz"格式使用命令:"tar -xJvf 压缩文件名称" "tar.gz"格式使用命令:"tar -xzvf 压缩文件名称"
[root@lwej opt]# tar -xJvf mysql-8.0.26-linux-glibc2.17-x86_64-minimal.tar.xz
中间部分省略...
查看解压完毕的目录信息
[root@lwej opt]# ls
5.3 创建mysql的安装目录"mysql"
# 创建mysql目录
[root@lwej opt]# mkdir mysql
# 查看
[root@lwej opt]# ls
5.4 移动解压缩文件到mysql安装目录并修改名称
# 移动解压缩文件并重命名为"mysql8_3306"
[root@lwej opt]# mv mysql-8.0.26-linux-glibc2.17-x86_64-minimal mysql/mysql8_3306
# 查看是否移动成功
[root@lwej opt]# ls mysql
6.安装
6.1 创建mysql数据目录"data"
# 进入mysql的安装目录
[root@lwej opt]# cd mysql/mysql8_3306/
# 创建mysql数据目录"data"
[root@lwej mysql8_3306]# mkdir data
6.2 创建mysql的临时文件目录"tmp"
# 创建tmp目录
[root@lwej mysql8_3306]# mkdir tmp
# 将tmp目录的权限赋予用户mysql和用户组mysql
[root@lwej mysql8_3306]# chown -R mysql:mysql tmp
# 查看
[root@lwej mysql8_3306]# ll
6.3 在MySql根目录下添加 my.cnf 配置文件
[root@lwej mysql8_3306]# vi my.cnf
配置文件内容如下:
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=/opt/mysql/mysql8_3306
# 设置mysql数据库的数据的存放目录
datadir=/opt/mysql/mysql8_3306/data
# 为MySQL客户程序与服务器之间的本地通信指定一个套接字文件(仅适用于UNIX/Linux系统;默认设置一般是/var/lib/mysql/mysql.sock文件)
socket=/opt/mysql/mysql8_3306/tmp/mysql.sock
# 设置X Plugin插件端口号,默认33060
mysqlx_port=33060
# 用于连接的Unix套接字文件的路径.只有在Unixos上运行时,MySQL Server才使用此设置
mysqlx_socket=/opt/mysql/mysql8_3306/tmp/mysqlx.sock
# 允许最大连接数
max_connections=10000
# 允许连接失败的次数,防止有人从该主机试图***数据库系统
max_connect_errors=10
# 服务端使用的字符集默认utf8mb4
character-set-server=utf8mb4
#数据库字符集对应一些排序等规则,注意要和character-set-server对应
collation-server = utf8mb4_general_ci
# 创建新表时使用的默认存储引擎
default-storage-engine=INNODB
# 设置sql语法模式,去掉ONLY_FULL_GROUP_BY
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# 设置大小写是否敏感,linux下默认值为0(敏感),Windows下默认值是1(不敏感)
lower_case_table_names=1
# 开启慢查询(选择开启)
slow_query_log=1
# 设置慢查询时间为5秒(选择开启),默认10秒
long_query_time=5
# 记录所有没有利用索引的查询(会导致日志信息暴涨,慎用,建议关闭),慢查询和此设置都设置为on才生效
#log_queries_not_using_indexes=off
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
# 为MySQL客户程序与服务器之间的本地通信指定一个套接字文件(仅适用于UNIX/Linux系统;默认设置一般是/var/lib/mysql/mysql.sock文件)
socket=/opt/mysql/mysql8_3306/tmp/mysql.sock
扩展: 慢查询日志路径默认在mysql根路径下的data目录中,默认给一个缺省的文件名host_name-slow.log,如本例中就是"/opt/mysql/mysql8_3306/data/lwej-slow.log" 慢查询具体使用==>《查看MySql慢日志》
6.4 修改MySql启动文件
解压版的MySql,默认的安装路径是:/usr/local/mysql,如果自定义安装路径,则需要修改mysql根路径下 support-files目录中的mysql.server文件,将默认路径"/usr/local/mysql"替换为实际安装路径,如 "/opt/mysql/mysql8_3306",否则将无法启动,建议将文件下载到本地批量替换
[root@lwej mysql8_3306]# vi support-files/mysql.server
6.5 初始化MySQL数据库
6.5.1 方式一(推荐)
# 初始化数据库,默认密码为空
[root@lwej mysql8_3306]# ./bin/mysqld --defaults-file=/opt/mysql/mysql8_3306/my.cnf --initialize-insecure --lower-case-table-names=1 --user=mysql --datadir=/opt/mysql/mysql8_3306/data --basedir=/opt/mysql/mysql8_3306
6.5.2 方式二
# 初始化数据库,拥有初始化密码
[root@lwej mysql8_3306]# ./bin/mysqld --defaults-file=/opt/mysql/mysql8_3306/my.cnf --initialize --lower-case-table-names=1 --user=mysql --datadir=/opt/mysql/mysql8_3306/data --basedir=/opt/mysql/mysql8_3306
6.6 启动MySQL数据库
# 启动mysql,第一次启动会生成*.localdomain.err日志文件
[root@lwej mysql8_3306]# ./support-files/mysql.server start
6.7 连接MySQL数据库
输入5.4初始化数据库时生成的默认密码,如果是空密码,则直接回车确认即可
# -S /opt/mysql/mysql8_3306/tmp/mysql.sock是mysql.sock套接字文件路径,如果默认路径是/tmp/mysql.sock则可以省略
[root@lwej mysql8_3306]# ./bin/mysql -u root -p -P3306 -S /opt/mysql/mysql8_3306/tmp/mysql.sock
6.8 修改数据库密码
# 修改密码为自定义密码"abc_123"
mysql> set password = 'abc_123';
6.9 开启远程访问
# 切换到mysql库
mysql> use mysql;
# 查看是否已开启远程连接
mysql> select host, user from user where user = 'root';
# 设置任何主机都可以连接
mysql> update user set host='%' where user='root';
# 刷新设置,使之生效
mysql> flush privileges;
# 再次查看是否已开启远程连接
mysql> select host, user from user where user = 'root';
6.10 创建其他用户
传送门 ==> 《MySql创建新用户》
7.防火墙开放端口
远程连接的时候发现仍然连接不上,检查防火墙,发现未打开指定的端口号,这里打开指定端口号即可. 以下操作需退出mysql,任何目录均可,或者重新打开一个窗口进行操作 传送门 ==> 《CentOS设置防火墙开放端口》
8.测试连接
root用户远程连接
test用户远程连接
9.添加mysql到服务,设置随机启动
传送门==>CentOS添加多实例MySql服务