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