//目前最新的為mysql 8
sudo docker run -itd --restart unless-stopped --net=host --name mysql -p3306:3306 -e MYSQL_ROOT_PASSWORD=root mysql
mysql 官方docker 需要重新設置密碼,否則無法遠程連接
step1 : docker exec -it [容器id] /bin/bash
step2 : 登陸mysql ==> mysql -uroot -h localhost -proot>use mysql;
mysql>ALTER USER'root'@'%' IDENTIFIED WITH mysql_native_password BY 'newpassword'
常用的mysql5.7:
sudo docker run -it -d --restart unless-stopped -p 13306:3306 -h mysql --name mysql -e MYSQL_ROOT_PASSWORD=root alanpeng/mysql5.7-replication-docker
sudo docker run -itd --restart unless-stopped -p 3306:3306 --net=host -h mysql --name mysql -e MYSQL_ROOT_PASSWORD=root alanpeng/mysql5.7-replication-docker
修改:
(如果不是在docker中 vi /etc/mysql/my.cnf)
vi? ?/etc/mysql/mysql.conf.d/mysqld.cnf
cd?? /etc/mysql/mysql.conf.d
echo 'sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION' >> mysqld.cnf
echo 'explicit_defaults_for_timestamp = 1' >>mysqld.cnf
echo 'max_allowed_packet= 500M' >>mysqld.cnf
mysql -uroot -p000000
1)展示user表的結構
mysql>desc user;
2)查詢user表
mysql>select?User, Host, Password from user;
3)修改user表,把Host表內容修改為%
mysql>update user set host='%' where user='root' and host='localhost';
4)刪除root用戶的其他host
mysql>delete from user where User='root'and Host='hadoop001 ';
mysql>delete from user where User='root'and Host='127.0.0.1';
mysql>delete from user where User='root'and Host='::1';
6)刷新
mysql>flush privileges;