一、pull官方镜像
选择一个指定的版本,或者直接拉去最新的mysql版本。
1. docker pull mysql:5.7 # 拉取 mysql 5.7 2. docker pull mysql # 拉取最新版mysql镜像
二、查看镜像
docker images
~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE wordpress php7.4 ccd598bc2c91 2 months ago 616MB mysql 5.7 938b57d64674 3 months ago 448MB
三、运行容器(开启mysql服务)
最后冒号后面的是tag,就是版本,如果安装有多个版本的mysql是不是启动起来很方便。
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql:8.0.22
容器销毁实例上的数据也会随之消失,所以需要将mysql 的数据目录映射在本地。
/opt/mysql 为宿主机目录 - > 存放数据的目录
/opt/mysql/conf -> my.cnf 配置
/opt/mysql/logs -> mysql log
- -v:主机和容器的目录映射关系,":"前为主机目录,之后为容器目录
docker run -p 3306:3306 --name mysql \ -v /opt/mysql/conf:/etc/mysql \ -v /opt/mysql/logs:/var/log/mysql \ -v /opt/mysql/data:/var/lib/mysql \ -e MYSQL_ROOT_PASSWORD=123456 \ -d mysql:5.7
docker ps查看启动的mysql进程
四、如何登陆到客户端
docker exec -it 91521db55888 bash 进入容器中
mysql -uroot -p 登录mysql
拉去的是最新版本的mysql 8.0.27
登录时报错:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password:
解决:
在容器中修改my.cnf 并重启容器.
/etc/mysql/my.cnf如果容器中没有vim,用以下命令安装
apt-get update
apt-get install vim
注: skip-grant-tables跳过授权表,也就是说谁都能进入mysql看到所有数据表,输入任意字符账号密码都可以。 这个显然是不安全的。
--update 2022年1月17日10:17:58
mysql 5.7之后都会有一个临时密码,grep 'temporary password' /var/log/mysqld.log 获取旧密码,
然后修改掉这个密码mysqladmin -uroot -p"old password" password (ninesun0318)
docker启动的mysql的mysqld.log 放在什么位置?...
五、Mysql 常用命令
登录mysql
mysql -u root -p**
查看数据库
show databases
查看参数
show variables 查看全部参数.
如果需要查看某个参数,可以使用like
查看mysql增删改查提交回滚数量
mysqladmin extended-status
]# mysqladmin -uroot -p... extended-status | egrep "Com_insert|Com_delete|Com_update|Com_update|Com_commit|Com_rollback" Warning: Using a password on the command line interface can be insecure. | Com_commit | 312548213 | | Com_delete | 119339 | | Com_delete_multi | 0 | | Com_insert | 598940616 | | Com_insert_select | 0 | | Com_rollback | 0 | | Com_rollback_to_savepoint | 0 | | Com_update | 96513367 | | Com_update_multi | 0 |
六、正常安装步骤
wget ftp://172.16.8.100/yumrepo/centos.repo -P /etc/yum.repos.d/ wget ftp://172.16.8.100/yumrepo/mysq157.repo -P /etc/yum.repos.d/ yum -y install lftp vim-enhanced bash-completion #Firewall& selinux systemctl stop firewall; systemctl disable firewall setenforce 0; sed -ri/SELINUX/C\SELINUXedisabled /etc/selinux/config #ntp 校时服务 yum -y install chrony sed -ri '/3.centos/a\server 172.16.8.100 iburst' /etc/chrony.conf #sed a代表追加 systemctl start chronyd; systemctl enable chronyd #install mysql5.7 yum -y install mysql-community-server systemctl start mysqld systemctl enable mysqld grep 'temporary password' /var/log/mysqld.log | awk '{print $NF}'>/root/mysqloldpass.txt #获取旧密码 mysqladmin -uroot -p"`cat /root/mysqloldpass.txt`" password(ninesun0318) #修改密码