1、从MySQL官网上将要安装软件包下载到本地。
2、安装
(1)创建文件夹
mkdir /usr/local/mysql-8.0.23
(2)解压安装包文件到指定文件夹下
mkdir /usr/local/mysql-8.0.23 & tar -zvxf /usr/local/src/mysql-8.0.23-el7-x86_64.tar.gz -C /usr/local/mysql-8.0.23 --strip-components 1
(2)创建data文件夹
mkdir /usr/local/mysql-8.0.23/data
(3)创建用户及用户组
# 用户组
groupadd mysql
# 用户 (用户名/密码)
useradd -g mysql mysql
(4)授权
chown -R mysql.mysql /usr/local/mysql-8.0.23/
(4)初始化数据库
/usr/local/mysql-8.0.23/bin/mysqld --user=mysql --basedir=/usr/local/mysql-8.0.23/ --datadir=/usr/local/mysql-8.0.23/data/ --initialize
结果:
2021-02-28T05:48:56.757203Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
2021-02-28T05:48:56.757390Z 0 [System] [MY-013169] [Server] /usr/local/mysql-8.0.23/bin/mysqld (mysqld 8.0.23) initializing of server in progress as process 2934
2021-02-28T05:48:56.768241Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2021-02-28T05:48:57.266291Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2021-02-28T05:48:58.749512Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: (bLd-P#;k9iW
(5)配置my.cnf
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=/usr/local/mysql-8.0.23
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql-8.0.23/data
# 允许最大连接数
max_connections=10000
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为utf8
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4
(6)构建MySQL服务
cp /usr/local/mysql-8.0.23/support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
chkconfig --add mysql
# 检查服务是否生效
chkconfig --list mysql
(7)启动服务
#启动服务
systemctl start mysql
# 查看服务
systemctl status mysql
#停止服务
systemctl stop mysql
(8) 登录mysql
使用mysql -u root -p 出现以下情况
[root@localhost mysql-8.0.23]# mysql -u root -p
-bash: mysql: 未找到命令
解决办法
[root@localhost mysql-8.0.23]# ln -s /usr/local/mysql-8.0.23/bin/mysql /usr/bin/
(9)更改默认密码并设置远程连接
修改密码的语句:
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘新密码’;
# 更改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
# 设置远程连接
use mysql;
update user set host='%' where user='root';
flush privileges;
如果远程连接不上,则应该放开3306端口号:
1)开放3306端口
# 开放端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 配置生效
firewall-cmd --reload
2)查看已经开放端口列表
firewall-cmd --zone=public --list-ports