自己建立挂载目录:/home/mysql/conf
创建my.cnf
输入:
[mysqld]
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
secure-file-priv= NULL
server-id = 1
log_bin = mysql-bin
ngram_token_size=2
max_connections=1500
max_connect_errors = 1000
ft_min_word_len=2
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
default-time_zone = '+8:00'
# Custom config should go here
!includedir /etc/mysql/conf.d/
启动docker
systemctl start docker
查看进程:
docker ps
查看images:
docker images
e1e1680ac726
如果没有mysql 服务
docker run -d -p 3306:3306 --privileged=true -v /home/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=自己的密码 --name mysql e1e1680ac726
再次查看docker ps
然后 docker exec -it mysql bash
输入mysql 账号密码 mysql -u root -p
8.0新特性外部登陆mysql 需要设置以下
建议先刷新以下mysql:FLUSH PRIVILEGES;
mysql> use mysql
mysql> show tables;
mysql> select user, host, plugin, authentication_string from user\G;
*************************** 1. row ***************************
user: root
host: %
plugin: caching_sha2_password
authentication_string: $A$005$N!nf>9op;}KyEOZGoQ.Jz9KC17UnEdkO/K7vjkygwtQKaE2fSJjED
*************************** 2. row ***************************
user: mysql.infoschema
host: localhost
plugin: caching_sha2_password
authentication_string: $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED
*************************** 3. row ***************************
user: mysql.session
host: localhost
plugin: caching_sha2_password
authentication_string: $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED
*************************** 4. row ***************************
user: mysql.sys
host: localhost
plugin: caching_sha2_password
authentication_string: $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED
*************************** 5. row ***************************
user: root
host: localhost
plugin: caching_sha2_password
authentication_string: $A$005$ =-
q] 12
QJXZSBgzyF.UfRDgXw6yPRoNC0OLysSpVnLeKWqnMx0
5 rows in set (0.00 sec)
mysql> FLUSH PRIVILEGES;
更改加密方式:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
更改用户密码:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';
mysql> FLUSH PRIVILEGES;
在这里你肯定觉得外部可以登陆,对不起错了。 会出 2003错误。
跟着往下走!!!
因为上边的是本地服务器登陆,但是还是登不上去的
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
在这里不刷新的话,会出现1251报错。
mysql> FLUSH PRIVILEGES;
navacat 连接 记住这里用户是 root 密码也是 root
再次更改账号密码:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
ok 完美解决。
踩了43000、1251、2003、1290、1064、1396、1045