CentOS安装解压缩版mysql8(图解)
说明:1.采用本例方式可同一台服务器上安装多个MySql实例
2.本实例的MySql安装路径在"/opt/mysql/mysql8_3306"下,所有的命令操作均以此目录为前提
1.安装包准备
MySQL最新版本下载地址:https://dev.mysql.com/downloads/mysql/
历史版本下载:https://downloads.mysql.com/archives/community/
2.确认CentOS的glibc版本
# rpm -qa | grep glibc
3.下载MySql
3.1 选择对应的版本:
3.2 下一步:
4.检查是否已经安装mysql或者mariadb
4.1 检查是否存在mysql或mariadb
# rpm -qa | grep mysql
# rpm -qa | grep mariadb
4.2 卸载已存在的mysql或mariadb
# rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
5.上传服务器并解压缩
5.1 上传到服务器"/opt"目录下
# 进入"/opt"目录下
# cd /opt/查看
# ls
5.2 解压缩
"tar.xz"格式使用命令:"tar -xJvf 压缩文件名称"
"tar.gz"格式使用命令:"tar -xzvf 压缩文件名称"
# tar -xJvf mysql-8.0.26-linux-glibc2.17-x86_64-minimal.tar.xz
中间部分省略...
查看解压完毕的目录信息
# ls
5.3 创建一个新的文件夹,名称自定义
# mkdir mysql5.4 将文件移动到这个新的文件夹中并修改名称
# mv mysql-8.0.26-linux-glibc2.17-x86_64-minimal mysql/mysql8_3306查看
# ls mysql
6.安装
6.1 进入MySql根目录创建"data"目录
# cd mysql/mysql8_3306/
# mkdir data
6.2 在MySql根目录下添加 my.cnf 配置文件
# vi my.cnf配置文件内容如下:
设置3306端口
port=3306设置mysql的安装目录
basedir=/opt/mysql/mysql8_3306设置mysql数据库的数据的存放目录
datadir=/opt/mysql/mysql8_3306/data允许最大连接数
max_connections=10000允许连接失败的次数,防止有人从该主机试图***数据库系统
max_connect_errors=10服务端使用的字符集默认utf8mb4
character-set-server=utf8mb4创建新表时使用的默认存储引擎
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=on设置慢查询时间为5秒(选择开启),默认10秒
long_query_time=5记录所有没有利用索引的查询(会导致日志信息暴涨,慎用,建议关闭),慢查询和此设置都设置为on才生效
log_queries_not_using_indexes=off
设置mysql客户端默认字符集
default-character-set=utf8mb4
扩展:
慢查询日志路径默认在mysql根路径下的data目录中,默认给一个缺省的文件名host_name-slow.log,如本例中就是"/opt/mysql/mysql8_3306/data/lwej-slow.log"
慢查询具体使用==>《查看MySql慢日志》
6.3 修改MySql启动文件
解压版的MySql,默认的安装路径是:/usr/local/mysql,如果自定义安装路径,则需要修改mysql根路径下
support-files目录中的mysql.server文件,将默认路径"/usr/local/mysql"替换为实际安装路径,如
"/opt/mysql/mysql8_3306",否则将无法启动,建议将文件下载到本地批量替换
# vi support-files/mysql.server
6.4 初始化MySQL数据库
# 初始化数据库,默认密码为空
# ./bin/mysqld --defaults-file=/opt/mysql/mysql8_3306/my.cnf --initialize-insecure --user=mysql --datadir=/opt/mysql/mysql8_3306/data --basedir=/opt/mysql/mysql8_3306
初始化数据库,拥有初始化密码
# ./bin/mysqld --defaults-file=/opt/mysql/mysql8_3306/my.cnf --initialize --user=mysql --datadir=/opt/mysql/mysql8_3306/data --basedir=/opt/mysql/mysql8_3306
提示没有创建"mysql"用户,我们需要建立"mysql"用户,并再次执行初始化命令
# 新增一个mysql用户
# useradd mysql这里采用生成默认密码的数据库初始化方案
# ./bin/mysqld --defaults-file=/opt/mysql/mysql8_3306/my.cnf --initialize --user=mysql --datadir=/opt/mysql/mysql8_3306/data --basedir=/opt/mysql/mysql8_3306
6.5 启动MySQL数据库
# ./support-files/mysql.server start
6.6 连接MySQL数据库
输入5.4初始化数据库时生成的默认密码
# bin/mysql -u root -p -P3306
6.7 修改数据库密码
# 修改密码为自定义密码"abc_123"
mysql> set password = 'abc_123';
6.8 开启远程访问
# 切换到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.9 创建其他用户
# 创建一个新的mysql用户"test"
mysql> create user 'test'@'%' identified by 'abc_123';给新用户复制权限
mysql> grant all privileges on . to 'test'@'%' with grant option;修改新用户密码策略,修改为mysql_native_password,这里的"%"(允许所有主机访问)
ALTER USER 'test'@'%' IDENTIFIED WITH mysql_native_password BY 'abc_123';MySQL8版本中新增了一个system_user帐户类型,当给用户赋予权限时会报"ERROR 1227 (42000): Access denied; you need (at least one of) the SYSTEM_USER privilege(s)for this operation" 的错误,原因是由于root用户没有SYSTEM_USER权限,把权限加入后即可解决
mysql> grant system_user on *.* to 'root';再次重复之前操作即可
mysql> ALTER USER 'test'@'%' IDENTIFIED WITH mysql_native_password BY 'abc_123';
7.防火墙开放端口
远程连接的时候发现仍然连接不上,检查防火墙,发现未打开指定的端口号,这里打开指定端口号即可.
以下操作需退出mysql,任何目录均可,或者重新打开一个窗口进行操作
# 查看firewalld状态
# systemctl status firewalld检查3306端口是否开放
# firewall-cmd --query-port=3306/tcp开放3306端口,端口可以是一个单独的端口<port>,也可以是一个端口范围<port>-<port>--permanent 永久生效,没有此参数重启后失效
# firewall-cmd --zone=public --add-port=3306/tcp --permanent重新载入,使之生效
# firewall-cmd --reload再次检查3306端口是否开放
# firewall-cmd --query-port=3306/tcp
8.测试连接
root用户远程连接
test用户远程连接
9.添加mysql到服务,设置随机启动
传送门==>CentOS添加多实例MySql服务
文档来源:51CTO技术博客https://blog.51cto.com/u_1197822/3188776
页:
[1]