https://www.jianshu.com/p/9e69e0e38665
安装源(如果已更新,可以不需要)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| ubuntu20 apt 源里的mysql 已经更新到 8.0, 可以直接安装
如果没有,参考 https://dev.mysql.com/doc/refman/8.0/en/linux-installation.html 添加. 如:
对于 ubuntu/debian
wget https://repo.mysql.com//mysql-apt-config_0.8.19-1_all.deb
sudo dpkg -i mysql-apt-config_0.8.19-1_all.deb
对于 centos8
wget https://repo.mysql.com//mysql80-community-release-el8-1.noarch.rpm
rpm -ivh mysql80-community-release-el8-1.noarch.rpm
|
安装
1
| sudo apt install mysql-server
|
设置开机启动
1
2
3
4
5
6
| systemctl status mysql # 查看状态,装完后默认就启动了,默认开机启动
sudo systemctl disable mysql # 关闭开机启动
sudo systemctl ensable mysql # 设置开机启动
sudo systemctl start mysql # 启动 mysql 服务
sudo systemctl stop mysql # 关闭 mysql 服务
|
登录
1
2
| #使用 root 用户连入 mysql, 默认不需要密码
mysql
|
创建用户并授权,修改密码,删除用户
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| 创建用户并授权(默认使用 caching_sha2_password 加密方式,新引入的)
create user 'user'@'localhost' identified by '明文密码';
grant all privileges on *.* to '用户名'@'localhost' with grant option;
flush privileges;
修改密码,指定使用 mysql_native_password 加密方式(mysql5.7/5.6使用的方式)
ALTER USER '用户名'@'localhost' IDENTIFIED WITH mysql_native_password BY '明文密码';
修改密码,指定使用 caching_sha2_password 加密方式(mysql8使用的方式)
alter user 'root'@'localhost' identified WITH caching_sha2_password BY 'root' PASSWORD EXPIRE NEVER;
删除用户
DROP USER '用户名'@'localhost';
是否用户允许在某些ip登录,修改 localhost
允许ip段的写法类似 '192.168.1.%'
|
具体操作方式
[[学习相关/各类中间件的使用/mysql/添加新用户及赋予权限]]
修改配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| 修改配置文件,绑定ip修改为 0.0.0.0
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
user = mysql
bind-address = 0.0.0.0
mysqlx-bind-address = 127.0.0.1
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
log-error = /var/log/mysql/error.log
key_buffer_size = 16M
myisam-recover-options = BACKUP
tmp_table_size=512M
max_heap_table_size=1024M
slow_query_log=1
long_query_time=10
slow_query_log_file=/var/log/mysql/mysql_slow_query.log
max_binlog_size = 100M
max_connections = 10000
max_user_connections = 10002
max_allowed_packet = 100G
log-bin=mysql-bin
expire_logs_days=0
binlog_expire_logs_seconds=21600
|
卸载 mysql
1
2
3
| sudo rm /var/lib/mysql/ -R
sudo rm /etc/mysql/ -R
sudo apt autoremove mysql* --purge
|
mysql客户端连接报错
1. Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
1
2
3
4
| 修改加密方式:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
flush privileges;
|