win7下docker環境centos容器中安裝mysql5.7


 

 

docker環境基於鏡像skiychan/nginx-php7,進行安裝

ps:skiychan/nginx-php7此鏡像已封裝nginx1.15.3+php7.2.9

1、環境配置

配置共享文件夾

配置端口映射

2、進入容器

docker run  -dti -p 3306:3306 -v /www:/data/www --name dnmp skiychan/nginx-php7 /bin/bash

docker exec -ti dnmp /bin/bash

安裝mysql:

1)准備:

先進入目錄/usr/local/src

cd /usr/local/src

下載

wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz

解壓 

tar -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz  

復制到 /usr/local/mysql

cp -r mysql-5.7.22-linux-glibc2.12-x86_64 /usr/local/mysql

2)添加用戶和用戶組

添加系統mysql組 

   groupadd mysql

添加mysql用戶

 useradd -r -g mysql mysql 

3)安裝數據庫

切到mysql目錄

 cd /usr/local/mysql

修改當前目錄擁有者為mysql用戶

 chown -R mysql:mysql ./

安裝數據庫

 bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

 

生成了臨時密碼

執行以下命令創建RSA private key 

bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data

修改當前目錄擁有者為mysql用戶

 chown -R mysql:mysql ./

4、配置my.cnf 

vim /etc/my.cnf   

[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
#不區分大小寫 (sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 這個簡單來說就是sql語句是否嚴格)
lower_case_table_names = 1
log-error=/var/log/mysqld.log
pid-file=/usr/local/mysql/data/mysqld.pid

添加開機啟動

     cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld

修改 

 vim /etc/init.d/mysqld   

添加路徑 在46行   

 basedir=/usr/local/mysql
 datadir=/usr/local/mysql/data

5)、啟動mysql   service mysqld start 

出現-bash: service: command not found

解決方式如下:

 yum list | grep initscripts

會出現

initscripts.x86_64                         9.49.30-1.el7_2.3           updates

# yum install initscripts

正常安裝完成之后就可以使用service命令

 加入開機起動  

 chkconfig --add mysqld  

6)登錄修改密碼

mysql -uroot -p 上面初始化時的密碼

如果出現錯誤 需要添加軟連接

  ln -s /usr/local/mysql/bin/mysql /usr/bin

 

 

 

如果忘記初始密碼,可用下面的方式修改:

vi /etc/my.cnf
在[mysqld]的段中加上一句:skip-grant-tables
例如:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
skip-grant-tables
保存並且退出vi。

重新啟動mysqld 
# service mysqld restart
Stopping MySQL: [ OK ]
Starting MySQL: [ OK ]

使用 root 用戶登錄到 mysql:mysql -u root 

切換到mysql數據庫,更新 user 表:

update user set authentication_string = password('root'), password_expired = 'N', password_last_changed = now() where user = 'root';

在之前的版本中,密碼字段的字段名是 password,5.7版本改為了 authentication_string

退出 mysql,編輯 /etc/my.cnf 文件,刪除 skip-grant-tables=1 的內容

重啟 mysqld 服務,再用新密碼登錄即可

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM