docker run -p 3306:3306 --restart=always --privileged=true --name mysql -v /opt/mysql/data:/var/lib/mysql -v /opt/mysql/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD="123456" -d mysql:5.7
命令說明: -p 3306:3306:將容器的3306端口映射到主機的3306端口 -e MYSQL_ROOT_PASSWORD=123456:初始化root用戶的密碼 -d: 后台運行容器,並返回容器ID 下面這兩行配置是掛載數據 -v /opt/mysql/data:/var/lib/mysql 掛載mysql配置文件 -v /opt/mysql/my.cnf:/etc/mysql/my.cnf my.cnf配置文件添加以下內容: [mysqld] user=root character-set-server=utf8 default_authentication_plugin=mysql_native_password sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION lower_case_table_names=1 #忽略表名大小寫 [client] default-character-set=utf8 [mysql] default-character-set=utf8
mysql更改密碼:
use mysql;
下面我們就要修改密碼了
以前的版本我們用的是以下修改
update user set password=password('root') where user='root';
但是在5.7版本中不存在password字段,所有我們要用以下修改進行重置密碼
update user set authentication_string=password('123456') where user='root';
重新授權
grant all privileges on *.* to root@'%' identified by '123456'; flush privileges;
退出mysql
quit;