文章

ubuntu20-mysql8.0

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;
本文由作者按照 CC BY 4.0 进行授权