centos 7 安装 mysql 8.0.18

MySQL Community Downloads :https://dev.mysql.com/downloads/mysql/

一、检查是否应安装了mysql或者mariadb,有的话卸载

1.1 检查mariadb

rpm -qa | grep mariadb


1.2 删除mariadb

yum -y remove mariadb*

1.3 检查mysql

rpm -qa | grep mysql

1.4 删除mysql

yum -y remove mysql*

1.5 删除旧的配置文件

rm -rf /etc/my.cnf

1.6 删除文件

rm -rf /var/lib/mysql 

二、安装mysql

2.1 配置安装源

sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

2.2 安装

sudo yum --enablerepo=mysql80-community install mysql-community-server


2.3 启动mysql
启动

systemctl start mysqld

查看运行状态

systemctl status mysqld

停止

systemctl stop mysqld

重启

systemctl restart mysqld


2.4 查看端口运行情况

netstat -nlpt

三、查看并修改密码

3.1 mysql安装后会生成一个默认密码,此密码登录后要修改密码,不能用于其他操作

cat /var/log/mysqld.log


3.2 登录root账号修改初始密码,复制上面的密码登录

mysql -u root -p

修改密码,注意密码要稍微复杂点(大小写+符号+数字),不然会提示 Your password does not satisfy the current policy requirements

ALTER USER USER() IDENTIFIED BY 'Xinmima@2020';

四、配置远程访问

4.1 查下系统用户,root默认是不允许远程访问的,需要把下图root账户的localhost改成%

use mysql;
select user,host,plugin,authentication_string from mysql.user;
select user,host,plugin from mysql.user;

4.2 修改root的权限并刷新权限

update mysql.user set host='%' where user='root';
flush privileges;

五、新建mysql账号 + 授权

5.1 新建test账号,%表示允许远程登录 ,改成ip就是ip登录

create user 'test'@'%' identified by 'Xinmima@2020';

下面是是授权部分:
5.2 给test用户授予testdb数据库的所有权限(可远程登陆)

grant all privileges on testdb.* to 'test'@'%';
flush privileges;

5.3 给test用户授予testdb数据库的查询权限(可远程登陆)

grant select on testdb.* to 'test'@'%';
flush privileges;

5.4 给test用户授予testdb数据库的insert,delete,update权限(可远程登陆)

grant insert,delete,update on testdb.* to 'test'@'%';
flush privileges;

5.5 查看用户的权限

show grants for 'test'@'%';


5.6 删除test用户对数据testdb的update权限

revoke update on testdb.* from 'test'@'%';
flush privileges;

六、修改mysql端口

6.1 编辑my.cnf

vi /etc/my.cnf

6.2 默认配置不含port行需自行添加,按esc退出INSERT模式 :wq 保存
port=6666

6.3 重启mysql并查看端口状态 注意:如果是云服务器(如阿里云),一定要检查安全组是否开启相应的端口,不然客户端连不上

systemctl restart mysqld
netstat -nlpt

七、修改mysql的数据、日志存放路径

7.1 先停止msyql

systemctl stop mysqld

7.2 先创建好要存储的位置

mkdir -p /data/mysql
cd /data/mysql

7.3 把文件移到/data/mysql/文件夹下,cp -a参数是权限也一起复制,然后删除原文件夹

cp -a /var/lib/mysql /data/
rm -rf /var/lib/mysql

7.4 修改软连接

ln -s /data/mysql /var/lib/

7.5 查看软连接

ls -la /var/lib/mysql

下图是正确的软连接方式:

7.6 修改my.cnf配置文件

vim /etc/my.cnf
属性 原值 修改为
datadir /var/lib/mysql /data/mysql
socket /var/lib/mysql/mysql.sock /data/mysql/mysql.sock

datadir=/data/mysql
socket=/data/mysql/mysql.sock

7.7 启动mysql并查看状态

systemctl start mysqld

7.8 登录mysql,查看数据文件

mysql -u root -p
show global variables like "%datadir%";

八、常见问题和处理

8.1 如果客户端连接报错"Authentication plugin 'caching_sha2_password' cannot be loaded",是以为mysql 8的加密方式改了。有两种选择 1、升级客户端 2、把加密方式改为传统的方式
推荐用新的加密方式(一般升级客户端就可以了),老项目代码的话可能有老的jar包等不支持新加密,下面是改为传统加密方式

ALTER mysql.USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Xinmima@2020';

8.2 查找mysql的安装路径

whereis mysql

mysql: /usr/bin/mysql /usr/lib64/mysql /usr/share/man/man1/mysql.1.gz

8.3 创建数据库,字符集有两种

方式 字符集 排序规则
不支持emoji utf8 utf8_general_ci
支持emoji utf8mb4 utf8mb4_general_ci

8.4 查看mysql版本

mysql -V

posted @ 2019-12-25 12:32  nickchou  阅读(3230)  评论(0编辑  收藏  举报