一、安装
1.更新源-先切换root
apt-get update -y
apt-get upgrade -y
2.安装mysql
apt-get install mysql-server -y
源包默认版本是MySQL8
二、更新配置文件
1. 迁移数据目录
mv /var/lib/mysql /data/
2.更新mysql配置文件
vim /etc/mysql/mysql.conf.d/mysqld.cnf
# 在[mysqld] 部分中找到并修改
datadir = /data/mysql
bind-address = 0.0.0.0
注:
- datadir 是数据目录
- bind-address = 0.0.0.0是配置允许远程访问
3.修改启动文件
vim /etc/apparmor.d/usr.sbin.mysqld
:%s/\/var\/lib/\/data/g
注:
- “:%s//var/lib//data/g”格式是 :%s/被替换的内容/新内容/g 。作用是将/var/lib全量替换为/data,注意要替换中包含的/需要加\转译
4.重启
systemctl restart apparmor
systemctl restart mysql
三、登录sql环境修改配置
1.登录并检查数据目录
mysql
SHOW VARIABLES LIKE 'datadir';
注:
- ubuntu20.04安装mysql8未配置前可以直接登录,不需要密码
- 确认输出的数据目录路径是不是你需要的
2.配置密码
use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'xinmima';
注:
- 如果你root对应的host已经改成%时,这里的’root’@‘localhost’需要改成’root’@‘%’
- MySQL 8 中的 mysql_native_password 和 sha256_password 插件已经被标记为弃用,并且将在未来的版本中移除。取而代之的是 caching_sha2_password 插件,所以要带上 WITH caching_sha2_password
- xinmima为密码
3.配置远程权限
update user set host='%' where user='root';
FLUSH PRIVILEGES;
quit
4. 重启mysql
systemctl restart mysql
四、检查
1.远程测试
mysql -h ip -u root -P 3306 -p
五、问题
1.端口不通
1.1检查防火墙
systemctl status ufw
systemctl status firewalld
systemctl status iptable
注:
- 如果防火墙是开启的,那得防火墙放通3306
1.2检查hosts.deny
cat /etc/hosts.deny
注:
- 检查hosts.deny是不是拦截了3306端口或者是不是拦截了全部。
- 如果是拦截了全部需要通过/etc/hosts.allow加白
1.3检查配置文件
vim /etc/mysql/mysql.conf.d/mysqld.cnf
注:
- 找到bind-address检查是否=0.0.0.0,或者是否bind-address被注释,配置是否在[mysqld]里面
- 检查是否port=3306
- 修改完配置文件,需要重启数据库