1、一般情况下,Centos会默认安装mariadb。所以请先确认是否已经安装了mariadb,如果安装了就需要先卸载。
rpm -qa|grep mariadb rpm -e mariadb-libs --nodeps

2、在/usr/local/目录下创建mysql文件夹
cd /usr/local mkdir mysql

3、进入mysql文件夹内,下载mysql
cd mysql wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.34-1.el7.x86_64.rpm-bundle.tar

4、解压mysql到当前目录
tar -xvf mysql-8.0.34-1.el7.x86_64.rpm-bundle.tar

5、安装mysql,依次执行下列命令
MySQL Configuration MySQL 配置 rpm -ivh mysql-community-common-8.0.34-1.el7.x86_64.rpm --nodeps --force Shared Libraries 共享库 rpm -ivh mysql-community-libs-8.0.34-1.el7.x86_64.rpm --nodeps --force Client Utilities 客户端实用程序 rpm -ivh mysql-community-client-8.0.34-1.el7.x86_64.rpm --nodeps --force MySQL Server MySQL服务器 rpm -ivh mysql-community-server-8.0.34-1.el7.x86_64.rpm --nodeps --force

6、初始化和相关配置,依次执行下列命令
mysqld --initialize; chown mysql:mysql /var/lib/mysql -R; systemctl start mysqld.service; systemctl enable mysqld;

如果执行mysqld –initialize; 出现以下报错,先执行yum -y install numactl,再执行mysqld –initialize;

如果执行systemctl start mysqld.service; 出现以下报错,先执行tail -f /var/log/mysqld.log查看错误日志

如果错误日志如下,执行cd /var/lib/mysql,执行rm -rf *删除所有文件,再执行systemctl start mysqld.service;

7、查看数据库初始化密码
cat /var/log/mysqld.log | grep password

8、登录数据库,复制粘贴始化密码就行,登录密码不会显示,按回车键
mysql -uroot -p

9、修改密码,密码需要数字,大小写字母,特殊符号
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxxxx';

10、退出mysql,然后通过新密码再次登陆验证密码是否修改成功
exit; mysql -uroot -p

11、创建远程访问用户,依次执行下列命令
create user 'root'@'%' identified with mysql_native_password by 'xxxxx'; grant all privileges on *.* to 'root'@'%' with grant option; flush privileges;

12、一般防火墙没有开放3306端口,需要在firewall放行端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload


MySQL 修改数据目录(无需修改配置)
MySQL 8.0 默认数据目录位置为:/var/lib/mysql/ 我的目标位置为:/home/data/
停止服务并检查 服务是否已经停止
systemctl stop mysqld.service systemctl status mysqld.service
将默认的数据目录移至目标位置
mv /var/lib/mysql/ /home/data/
将在目标位置软链至原始位置,使用以下指令建立软链接
ln -s /home/data/mysql /var/lib/
检查是否已链接成功,使用以下指令
ls -la /var/lib/mysql
重启服务
systemctl start mysqld.service
MySQL 赋予用户权限
1. 赋予权限
# 创建本地用户 CREATE USER 'user'@'localhost' IDENTIFIED BY 'password'; # 新建远程用户 CREATE USER 'user'@'%' IDENTIFIED BY 'password'; # 新建数据库 CREATE DATABASE test_db; # 查看用户权限 SHOW GRANTS FOR 'user'@'%'; # 赋予用户指定数据库远程访问权限 GRANT ALL PRIVILEGES ON test_db.* TO 'user'@'%'; # 赋予用户对所有数据库远程访问权限 GRANT ALL PRIVILEGES ON *.* TO 'user'@'%'; # 赋予用户对所有数据库本地访问权限 GRANT ALL PRIVILEGES ON *.* TO 'user'@'localhost'; # 刷新权限 FLUSH PRIVILEGES;
2. 收回权限
# 收回权限 REVOKE ALL PRIVILEGES ON *.* FROM 'test'@'%'; # 删除本地用户 DROP USER 'user'@'localhost'; # 删除远程用户 DROP USER 'user'@'%'; # 刷新权限 FLUSH PRIVILEGES;