这篇文章主要介绍了CentOS7.6安装MYSQL8.0的步骤,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
转自:http://www.cppcns.com/shujuku/mysql/287244.html
1、一般CentOS默认安装了mariadb,所以先查看是否安装mariadb,如果安装就需要先卸载mariadb
- rpm -qa|grep mariadb
- rpm -e mariadb-libs --nodeps
2、在/usr/local/目录下创建mysql文件夹
- cd /cd usr/local
- mkdir mysql
3、进入mysql文件夹内,下载mysql
- cd mysql
- wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar
4、解压mysql到当前目录
- tar -xvf mysql-8.0.16-2.el7.x86_64.rpm-bundle.tar
5、安装mysql,依次执行下列命令
- rpm -ivh mysql-community-common-8.0.16-2.el7.x86_64.rpm --nodeps --force
- rpm -ivh mysql-community-libs-8.0.16-2.el7.x86_64.rpm --nodeps --force
- rpm -ivh mysql-community-client-8.0.16-2.el7.x86_64.rpm --nodeps --force
- rpm -ivh mysql-community-server-8.0.16-2.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端口,需要在服务器控制台,配置安全组~
总结
以上所述是小编给大家介绍的CentOS7.6安装MYSQL8.0的步骤详解,希望对大家有所帮助
另外补充MySQL操作:修改端口与分配权限
vim /etc/my.cnf
[mysqld]
port=12345
添加以上port的设置
运行服务: systemctl restart mysqld.service
再检查下端口: netstat -nltp
发现mysql监听两个端口:12345 33060.这是应为MySQL5.7.12 之后新增了X plugin。这个插件默认是启用的,可以在配置配置文件/etc/my.cnf 添加mysqlx=0关闭X plugin。 也可以在启动时指定 --mysqlx=0 或 --skip-mysqlx 来禁用X插件。
可能会遇到. SELinux问题
方法一: 不需要重启Linux: # setenforce 0
方法二:需要重启Linux:
vi /etc/selinux/config
SELINUX=disabled[/size]
#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;