how to install mysql 8.0 in centos 7 docker image
雖然docker hub 上已經有最後一版的mysql 可以用
但還是想要自己從頭安裝一次看看
下面大概就是如何自己安裝mysql 在 centos 7 的docker container
先啟動centos 7 注意 --privileged=true
一定要加
否則啟動時會遇到一些問題(細節就不多說了)
docker run -d -ti --privileged=true centos /usr/sbin/init /bin/bash
以下是安裝mysql 8.0的指令
yum -y install wget
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
yum -y localinstall mysql80-community-release-el7-3.noarch.rpm
yum -y install mysql-community-server
systemctl start mysqld
因為mysql預設安裝好後,會在log裡面放入預設的root密碼
所以我們要先從log中將密碼取出
grep 'temporary password' /var/log/mysqld.log
如果安裝完後,要將自己裝的整個mysql 環境打包
可以用這個指令docker commit -m "build my mysql" -a "$AUTHOR" $CONTAINER_ID "$IMG_NAME"
最後可以執行看看剛剛打包好的image
docker run --privileged=true -d -ti -p 3306:3306 $IMG_NAME
------------------------------以上安裝完畢------------------------------
8.0 如果要讓一些GUI可以正常的存取
請記得從cmd 進入db後要執行下列指令
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '$PASSWORD';
下面這段要謹慎服用,為了自己測試用,所以將密碼的強度改得很低
SET GLOBAL validate_password.policy=0;
SET GLOBAL validate_password.length=5;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '$PASSWORD';
CREATE USER 'dev'@'%' IDENTIFIED BY '$PASSWORD';
GRANT ALL PRIVILEGES ON *.* TO 'dev'@'%';
ALTER USER 'dev'@'%' IDENTIFIED WITH mysql_native_password BY '$PASSWORD';
FLUSH PRIVILEGES;