Centos7 安装mysql8.0.21 Compressed TAR Archive版
一、官网下载安装包https://downloads.mysql.com/archives/community/
二、检查系统中是否安装了mariadb,有就卸载
[root@localhost ~]# rpm -qa |grep mariadb
[root@localhost ~]# yum remove mariadb-libs-5.5.68-1.el7.x86_64
三、创建mysql用户及mysql组
[root@localhost opt]# groupadd mysql
[root@localhost opt]# useradd -g mysql mysql
四、将安装包上传至服务器并解压,并将目录重命名为mysql-8,将其拥有者、拥有组都改为mysql
[root@localhost opt]# tar -zxvf mysql-8.0.21-el7-x86_64.tar.gz
[root@localhost opt]# mv mysql-8.0.21-el7-x86_64 mysql-8
[root@localhost opt]# chown -R mysql:mysql data
[root@localhost opt]# chown -R mysql:mysql mysql-8
五、创建/etc/my.cnf并修改配置
[mysqld]
# 设置 3306 端口
port=3306
# 设置 mysql 的安装目录
basedir=/opt/mysql-8
# 设置 mysql 数据库的数据的存放目录
datadir=/opt/data/mysql/data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为 UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置 mysql 客户端默认字符集
default-character-set=utf8
[client]
# 设置 mysql 客户端连接服务端时默认使用的端口
port=3306
六、初始化,记住生成的默认密码
[root@localhost ~]# cd /opt/mysql-8/bin/
[root@localhost ~]# ./mysqld --initialize --basedir=/opt/mysql-8 --datadir=/opt/data/mysql/data
七、启动mysql服务
[root@localhost mysql-8]# /opt/mysql-8/support-files
[root@localhost mysql-8]# vim mysql.server
basedir=/opt/mysql-8
datadir=/opt/data/mysql/data
[root@localhost mysql-8]# ./mysql.server start
[root@localhost mysql-8]# ps -ef |grep mysql #查看进程
八、登录MySQL,输入初始密码登录
[root@localhost support-files]# cd /opt/mysql-8/bin/
[root@localhost bin]# ./mysql -uroot -p
九、修改初始密码并修改环境变量
mysql> alter user 'root'@'localhost' identified by '你的新密码';
#重启mysql服务,用新密码登录成功
[root@localhost bin]# vim /etc/profile
export MYSQL_HOME=/opt/mysql-8
export PATH=$PATH:$MYSQL_HOME/bin
[root@localhost bin]# source /etc/profile #使配置生效
# 即可在任何路径下使用 mysql 命令
[root@localhost bin]# cd /opt/mysql-8/support-files/
[root@localhost bin]# cp mysql.server /etc/init.d/mysql
# 即可使用service 启动、停止、查看mysql状态
十、授权root用户远程登陆
mysql> select host,user from user;
mysql> update user set host='%' where user='root';
mysql> flush privileges;