1、检查是否安装过mariadb
# 查看是否存在mariadb
rpm - qa | grep mariadb | wc - l
# 卸载mariadb
rpm - e -- nodeps `rpm -qa | grep mariadb`
2、解压并创建目录
# 解压
tar - xvf mysql- 8.0 .20 - linux- glibc2. 12 - x86_64. tar. xz
# 修改文件夹名
mv mysql- 8.0 .20 - linux- glibc2. 12 - x86_64 mysql
# 移动到 / usr/ local/ dev/
# 注意一定不要放到/ root 目录下,否则会出现很多权限问题
mv mysql / usr/ local/ dev/
#进入mysql 目录
cd / usr/ local/ dev/ mysql/
# 创建数据目录和临时目录
mkdir data tmp
3、创建用户和用户组
# 创建mysql 用户和用户组
groupadd mysql
useradd - r - g mysql mysql
# 修改用户目录所有者
chown - R mysql: mysql / usr/ local/ dev/ mysql
4、配置my.cnf
[ mysqld]
lower_case_table_names= 1
default - time_zone= '+8:00'
user= mysql
port= 3306
basedir= / usr/ local/ dev/ mysql
datadir= / usr/ local/ dev/ mysql/ data
tmpdir= / usr/ local/ dev/ mysql/ tmp
socket= / usr/ local/ dev/ mysql/ tmp/ mysql. sock
log- error= / usr/ local/ dev/ mysql/ tmp/ error. log
pid- file= / usr/ local/ dev/ mysql/ tmp/ mysql. pid
# 修改mysql 默认加密方式为旧的方式
default - authentication- plugin = mysql_native_password
[ mysql]
default - character- set = utf8
[ client]
port= 3306
default - character- set = utf8
socket= / usr/ local/ dev/ mysql/ tmp/ mysql. sock
5、初始化数据库
# 初始化和启动mysql
cd / usr/ local/ mysql/ bin
# 初始化数据库
# 注意如果此时在/ etc/ my. cnf 配置了error- log , 不会打印了
# 若未指定/ etc/ my. cnf 默认安装到 / var / lib/ mysql/
. / mysqld -- initialize -- console -- user= mysql
# 清空数据目录(如果想重新安装)
/ usr/ local/ dev/ mysql/ bin/ data
rm - rf *
# 查看默认密码
tail - f / usr/ local/ dev/ mysql/ tmp/ error. log
# 示例如下 BIyl8d- z) 2 m#
A temporary password is generated for root@localhost: BIyl8d- z) 2 m#
6、启动、关闭和连接
cd / usr/ local/ dev/ mysql/ bin
# 启动mysql
. / mysqld_safe -- user= mysql&
# 关闭 mysql
. / mysqladmin - uroot - p shutdown
# 连接数据库
. / mysql - u root - p
7、连接并修改密码
cd / usr/ local/ dev/ mysql/ bin
# 连接数据库,默认密码查看初始化时
. / mysql - u root - p
# 修改密码
ALTER USER "root" @"localhost" IDENTIFIED BY "123456" ;
8、打开远程连接
cd / usr/ local/ dev/ mysql/ bin
# 连接数据库,默认密码查看初始化时
. / mysql - u root - p
# 打开远程连接
use mysql;
update user set host= '%' where user = 'root' ;
#立即生效,必须
FLUSH PRIVILEGES ;
# 查看是否生效
select host, user from user;
+ -- -- -- -- -- - + -- -- -- -- -- -- -- -- -- +
| host | user |
+ -- -- -- -- -- - + -- -- -- -- -- -- -- -- -- +
| % | root |
| localhost | mysql. infoschema |
| localhost | mysql. session |
| localhost | mysql. sys |
+ -- -- -- -- -- - + -- -- -- -- -- -- -- -- -- +
4 rows in set ( 0.00 sec)
# SQL 方式修改加密方式
update user set plugin= 'mysql_native_password' where user= 'root' ;
select host, user, plugin from user;
9、开放端口
# 查看所有端口
firewall- cmd -- zone= public -- list- ports
# 开放端口
firewall- cmd -- permanent -- zone= public -- add- port= 3306 / tcp
# 重新载入配置
firewall- cmd -- reload
初始化日志
[ root@winterSun bin] # . / mysqld -- initialize -- console -- user= mysql
2020 - 09 - 05 T07: 55 : 59.076190 Z 0 [ System] [ MY - 013169 ] [ Server]
/ usr/ local/ dev/ mysql/ bin/ mysqld ( mysqld 8.0 .20 )
initializing of server in progress as process 5169
2020 - 09 - 05 T07: 55 : 59.084274 Z 1 [ System] [ MY - 013576 ] [ InnoDB] InnoDB initialization has started.
2020 - 09 - 05 T07: 56 : 02.120377 Z 1 [ System] [ MY - 013577 ] [ InnoDB] InnoDB initialization has ended.
2020 - 09 - 05 T07: 56 : 04.092946 Z 6 [ Note] [ MY - 010454 ] [ Server]
A temporary password is generated for root@localhost: BIyl8d- z) 2 m#
错误信息
[ root@winterSun bin] # . / mysqld -- initialize -- console -- user= mysql
. / mysqld: error while loading shared libraries: libaio. so. 1 :
cannot open shared object file: No such file or directory
# 安装依赖
rpm - qa| grep libaio
yum install libaio