[MySQL] Install mysql 8.0 in Centos 7

  • 271
  • 0
  • 2019-08-12

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;