一、下载mysql安装包并解压
执行以下命令:
# 创建mysql安装目录
mkdir /usr/local/mysql
# 进入mysql安装目录
cd /usr/local/mysql/
# 下载mysql-8.0.24
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.24-linux-glibc2.12-x86_64.tar.xz
# 解压
tar -xvf mysql-8.0.24-linux-glibc2.12-x86_64.tar.xz
# 重命名解压出来的文件夹名
mv mysql-8.0.24-linux-glibc2.12-x86_64 mysql-8.0.24
# 创建数据存储目录
mkdir mysql-8.0.24/data
二、创建用户组和用户并授权
执行以下命令:
# 创建用户组
groupadd mysql
# 创建用户
useradd -g mysql mysql
# 授权用户
chown -R mysql.mysql /usr/local/mysql/mysql-8.0.24
三、初始化数据库
执行以下命令:
# 初始化数据库,不区分大小写--lower-case-table-names=1需在初始化时设置才生效
/usr/local/mysql/mysql-8.0.24/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/mysql-8.0.24 --datadir=/usr/local/mysql/mysql-8.0.24/data --lower-case-table-names=1
获取到初始化随机默认密码,之后第一次登陆时要用:
四、编写my.cnf配置文件
vim编辑/etc/my.cnf:
vim /etc/my.cnf
配置内容:
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=/usr/local/mysql/mysql-8.0.24
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/mysql-8.0.24/data
# 允许最大连接数
max_connections=1000
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=100
# 服务端使用的字符集默认为UTF8
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
# 是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names=1
# MySQL连接闲置超过一定时间后(单位:秒)将会被强行关闭
# MySQL默认的wait_timeout 值为8个小时, interactive_timeout参数需要同时配置才能生效
interactive_timeout=1800
wait_timeout=1800
# Metadata Lock最大时长(秒),一般用于控制alter操作的最大时长sine mysql5.6
# 执行 DML操作时除了增加innodb事务锁外还增加Metadata Lock,其他alter(DDL)session将阻塞
lock_wait_timeout=3600
# 内部内存临时表的最大值
# 比如大数据量的group by ,order by时可能用到临时表
# 超过了这个值将写入磁盘,系统IO压力增大
tmp_table_size=64M
max_heap_table_size=64M
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4
五、配置成服务并开机自启
执行以下命令:
# 进入主目录
cd mysql-8.0.24/
# 添加mysqld服务到系统
cp -a ./support-files/mysql.server /etc/init.d/mysql
# 授权以及添加服务
chmod +x /etc/init.d/mysql
chkconfig --add mysql
# 检查是否生效
chkconfig --list mysql
出现下图所示内容说明配置生效:
六、配置环境变量
vim编辑/etc/profile:
vim /etc/profile
在/etc/profile中添加以下内容:
export MYSQL_HOME=/usr/local/mysql/mysql-8.0.24
export PATH=$PATH:$MYSQL_HOME/bin:$MYSQL_HOME/lib
刷新/etc/profile:
source /etc/profile
七、启动mysql服务
启动、停止、重启服务和查看服务状态命令:
# 启动服务
service mysql start
# 查看服务状态
service mysql status
# 停止服务
service mysql stop
# 重启服务
service mysql restart
执行启动命令,出现下图所示内容说明启动成功:
八、登录mysql
执行一下命令
mysql -u root -p
如果出现以下错误
执行以下命令安装ncurses-compat-libs:
dnf install ncurses-compat-libs
再次登录就能成功登陆了:
九、修改root用户密码
执行以下语句修改用户密码:
-- 修改root用户密码
-- ALTER USER '用户名'@'ip地址' IDENTIFIED WITH mysql_native_password BY '密码';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
-- 刷新权限
flush privileges;
十、设置外网连接授权
执行以下语句设置允许所有ip访问root用户:
-- 进入数据库mysql
use mysql;
-- 修改root用户host,%表示允许所有ip访问root用户
update user set host='%' where user='root';
-- 刷新权限
flush privileges;
防火墙没关的话需要关闭并禁止开机启动,否则远程连接mysql会失败:
systemctl stop firewalld && systemctl disable firewalld