docker run --name mysql -p 3306:3306 -v /home/mysql/datadir:/var/lib/mysql -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/logs:/var/log/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql
进入mysql实例
docker exec -it mysql bash
登陆mysql
mysql -uroot -p
给用于授予权限
grant all privileges on *.* to `root`@`%`;
网上流传都是这种写法,实际上会报错
GRANT ALL PRIVILEGES ON *.* ‘root’@’%’ identified by ‘root’ WITH GRANT OPTION;
刷新权限
flush privileges;
现在就可以用其他连接工具远程连接了
总览
[root@localhost docker]# docker pull mysql
......
[root@localhost docker]# docker run --name mysql01 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql
1eab0aa45b90b793914265ea0012035d6a6d592f5b9484663d37929353b438f2
[root@localhost docker]# docker exec -it mysql bash
root@1eab0aa45b90:/# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.19 MySQL Community Server - GPL
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> grant all privileges on *.* to `root`@`%`;
Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)