mysql5.7.19在centos虛擬機器下手動(離線)安裝配置過程與一些問題解決辦法
阿新 • • 發佈:2018-12-30
一、centos下手動配置MySQL資料庫
1.下載MySQL資料庫官網: https://dev.mysql.com/downloads/mysql/ 我下載的是mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
2.通過winscp軟體進行傳輸到centos(類似於ftp,連線centos,方法自行百度,Google)下,注意防火牆是否在執行,在執行就關閉
4、解除安裝系統自帶的Mariadb
rpm -qa|grep mariadb //查詢出已安裝的mariadb
rpm -e --nodeps 檔名 //解除安裝 , 檔名為使用rpm -qa|grep mariadb 命令查出的所有檔案
5、刪除etc目錄下的my.cnf檔案
rm /etc/my.cnf
6、 執行以下命令來建立mysql使用者組
groupadd mysql
7、執行以下命令來建立一個使用者名稱為mysql的使用者並加入mysql使用者組
useradd -g mysql mysql
8、解壓安裝包並且放到 /usr/local裡面,重新命名為mysql
tar -zxvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/mysql
9、在etc下新建配置檔案my.cnf,並在該檔案內新增以下程式碼:
[mysql]
# 設定mysql客戶端預設字符集
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
[mysqld]
skip-name-resolve
#設定3306埠
port=3306
socket=/var/lib/mysql/mysql.sock
# 設定mysql的安裝目錄
basedir=/usr/local/mysql
# 設定mysql資料庫的資料的存放目錄
datadir=/usr/local/mysql/data
# 允許最大連線數
max_connections=200
# 服務端使用的字符集預設為8位元編碼的latin1字符集
character-set-server=utf8
# 建立新表時將使用的預設儲存引擎
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
10、建立步驟9中用到的目錄並將其使用者設定為mysql
mkdir /var/lib/mysql
mkdir /var/lib/mysql/mysql
chown -R mysql:mysql /var/lib/mysql
chown -R mysql:mysql /var/lib/mysql/mysql
11、進入/usr/local/mysql目錄
cd /usr/local/mysql
chown -R mysql:mysql ./ #修改當前目錄擁有者為mysql使用者
./bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ #安裝資料庫mysql5.7.x mysql_install_db命令在bin資料夾下面
#不同版本的安裝命令在的位置不一樣,需要大家注意
chown -R mysql:mysql data #修改當前data目錄擁有者為mysql使用者
到此資料庫安裝完畢!
二、配置MySQL
1、授予my.cnf的最大許可權。
chown 755 /etc/my.cnf #配置my.cnf許可權為:rwxr-xr-x
設定開機自啟動服務控制指令碼:
2、複製啟動指令碼到資源目錄在 /usr/local/mysql目錄下面複製mysql.server到/etc/rc.d/init.d/mysqld(重新命名為mysqld)
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
3、增加mysqld服務控制指令碼執行許可權
chmod +x /etc/rc.d/init.d/mysqld
4、將mysqld服務加入到系統服務
chkconfig --add mysqld
5、檢查mysqld服務是否已經生效
chkconfig --list mysqld
命令輸出類似下面的結果:
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
表明mysqld服務已經生效,在2、3、4、5執行級別隨系統啟動而自動啟動,以後可以使用service命令控制mysql的啟動和停止。
6、啟動msql(停止mysqld服務:service mysqld stop)
service mysqld start
7、將mysql的bin目錄加入PATH環境變數,編輯/etc/profile檔案,在檔案最後新增如下資訊
vi /etc/profile
在檔案最後新增如下資訊
export PATH=$PATH:/usr/local/mysql/bin
8、執行下面的命令使所做的更改生效:
source /etc/profile
可以檢查有沒有配成功
ecoh $PATH #包含了/usr/local/mysql/bin說明命令已經生效
9、可以登入了
mysql -u root -p #注:如果需要密碼那麼可以採用忘記密碼方式取登入
10、在配置檔案my.cnf最後面加入無密碼登入的配置
vi /etc/my.cnf
加入
skip-grant-tables
儲存並退出
:wq!
11、重啟mysql
service mysqld restart
12、輸入mysql進入mysql資料庫
mysql -uroot -p #密碼為空,不用輸
13、選擇mysql資料庫進行修改密碼
use mysql
update user set authentication_string=password('123456') where user='root'; #mysql5.7版本的user表,已經沒有password欄位,
#如果authentication_string 是password會提示沒有"no password field"
flush privileges; #重新整理許可權
exit; #退出
14、再回到/etc/my.cnf裡面註釋skip-grant-tables儲存退出
#skip-grant-tables
:wq!
15、重啟mysqld
service mysqld restart
16、然後就可以用密碼登入了
mysql -uroot -p
Enter password: #輸入密碼
當然瞭如果想訪問宿機(真機)裡面的mysql資料庫出現下列問題時可以嘗試下列方法,親自試過可行,
下面是centos裡面mysql訪問真機win7裡面的mysql的例子,在win7下mysql授權已經防火牆需要設定如下操作
can't connect to mysql server on '192.168.175.101' (110)
解決辦法
grant all privileges on database_name.* to 'root'@'%' identified by '123456' with grant option;
flush privileges;
當配好虛擬機器與主機能相互通訊時,並且MySQL也已經裝好,但是想通過centos虛擬機器訪問win7的MySQL資料庫卻報
can't connect to mysql server on '192.168.175.101' (110)錯誤
網上查詢說是MySQL沒有原創授權於是授權,如下
開啟cmd,執行 mysql -u root -p 在輸入密碼
再輸入兩句授權語句
grant all privileges on database_name.* to 'root'@'192.168.123.10' identified by '123456' with grant option;
flush privileges;
表示給root在192.168.123.10的ip下訪問MySQL,database_name指可以訪問的資料庫,後面的 .* 指資料庫裡面的所有表,最後重新整理一下許可權。
但是在連虛擬機器連線主機MySQL時報了上面的錯,其實就是防火牆的問題,也比較簡單,進入到win7的控制面板—》系統安全—》防火牆—》高階設定下面幾部完成
新建入站規則與出站規則,過程步驟都一致
埠選擇
1)下一步,選擇tcp,特定埠,預設MySQL埠為3306
2)下一步,允許連線
3)繼續下一步,選擇三個複選框
4)點選下一步,填寫名稱與描述
5)完成
完成了入站與出站後
在虛擬機器輸入mysql -h 192.168.xxx.xxx -u root -p
再輸密碼
即可成功!
1.下載MySQL資料庫官網: https://dev.mysql.com/downloads/mysql/ 我下載的是mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
2.通過winscp軟體進行傳輸到centos(類似於ftp,連線centos,方法自行百度,Google)下,注意防火牆是否在執行,在執行就關閉
4、解除安裝系統自帶的Mariadb
rpm -qa|grep mariadb //查詢出已安裝的mariadb
rpm -e --nodeps 檔名 //解除安裝 , 檔名為使用rpm -qa|grep mariadb 命令查出的所有檔案
5、刪除etc目錄下的my.cnf檔案
rm /etc/my.cnf
6、 執行以下命令來建立mysql使用者組
groupadd mysql
7、執行以下命令來建立一個使用者名稱為mysql的使用者並加入mysql使用者組
useradd -g mysql mysql
8、解壓安裝包並且放到 /usr/local裡面,重新命名為mysql
tar -zxvf mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.6.36-linux-glibc2.5-x86_64 /usr/local/mysql
9、在etc下新建配置檔案my.cnf,並在該檔案內新增以下程式碼:
[mysql]
# 設定mysql客戶端預設字符集
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
[mysqld]
skip-name-resolve
#設定3306埠
port=3306
socket=/var/lib/mysql/mysql.sock
# 設定mysql的安裝目錄
basedir=/usr/local/mysql
# 設定mysql資料庫的資料的存放目錄
datadir=/usr/local/mysql/data
# 允許最大連線數
max_connections=200
# 服務端使用的字符集預設為8位元編碼的latin1字符集
character-set-server=utf8
# 建立新表時將使用的預設儲存引擎
default-storage-engine=INNODB
lower_case_table_names=1
max_allowed_packet=16M
10、建立步驟9中用到的目錄並將其使用者設定為mysql
mkdir /var/lib/mysql
mkdir /var/lib/mysql/mysql
chown -R mysql:mysql /var/lib/mysql
chown -R mysql:mysql /var/lib/mysql/mysql
11、進入/usr/local/mysql目錄
cd /usr/local/mysql
chown -R mysql:mysql ./ #修改當前目錄擁有者為mysql使用者
./bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ #安裝資料庫mysql5.7.x mysql_install_db命令在bin資料夾下面
#不同版本的安裝命令在的位置不一樣,需要大家注意
chown -R mysql:mysql data #修改當前data目錄擁有者為mysql使用者
到此資料庫安裝完畢!
二、配置MySQL
1、授予my.cnf的最大許可權。
chown 755 /etc/my.cnf #配置my.cnf許可權為:rwxr-xr-x
設定開機自啟動服務控制指令碼:
2、複製啟動指令碼到資源目錄在 /usr/local/mysql目錄下面複製mysql.server到/etc/rc.d/init.d/mysqld(重新命名為mysqld)
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
3、增加mysqld服務控制指令碼執行許可權
chmod +x /etc/rc.d/init.d/mysqld
4、將mysqld服務加入到系統服務
chkconfig --add mysqld
5、檢查mysqld服務是否已經生效
chkconfig --list mysqld
命令輸出類似下面的結果:
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
表明mysqld服務已經生效,在2、3、4、5執行級別隨系統啟動而自動啟動,以後可以使用service命令控制mysql的啟動和停止。
6、啟動msql(停止mysqld服務:service mysqld stop)
service mysqld start
7、將mysql的bin目錄加入PATH環境變數,編輯/etc/profile檔案,在檔案最後新增如下資訊
vi /etc/profile
在檔案最後新增如下資訊
export PATH=$PATH:/usr/local/mysql/bin
8、執行下面的命令使所做的更改生效:
source /etc/profile
可以檢查有沒有配成功
ecoh $PATH #包含了/usr/local/mysql/bin說明命令已經生效
9、可以登入了
mysql -u root -p #注:如果需要密碼那麼可以採用忘記密碼方式取登入
10、在配置檔案my.cnf最後面加入無密碼登入的配置
vi /etc/my.cnf
加入
skip-grant-tables
儲存並退出
:wq!
11、重啟mysql
service mysqld restart
12、輸入mysql進入mysql資料庫
mysql -uroot -p #密碼為空,不用輸
13、選擇mysql資料庫進行修改密碼
use mysql
update user set authentication_string=password('123456') where user='root'; #mysql5.7版本的user表,已經沒有password欄位,
#如果authentication_string 是password會提示沒有"no password field"
flush privileges; #重新整理許可權
exit; #退出
14、再回到/etc/my.cnf裡面註釋skip-grant-tables儲存退出
#skip-grant-tables
:wq!
15、重啟mysqld
service mysqld restart
16、然後就可以用密碼登入了
mysql -uroot -p
Enter password: #輸入密碼
當然瞭如果想訪問宿機(真機)裡面的mysql資料庫出現下列問題時可以嘗試下列方法,親自試過可行,
下面是centos裡面mysql訪問真機win7裡面的mysql的例子,在win7下mysql授權已經防火牆需要設定如下操作
can't connect to mysql server on '192.168.175.101' (110)
解決辦法
grant all privileges on database_name.* to 'root'@'%' identified by '123456' with grant option;
flush privileges;
當配好虛擬機器與主機能相互通訊時,並且MySQL也已經裝好,但是想通過centos虛擬機器訪問win7的MySQL資料庫卻報
can't connect to mysql server on '192.168.175.101' (110)錯誤
網上查詢說是MySQL沒有原創授權於是授權,如下
開啟cmd,執行 mysql -u root -p 在輸入密碼
再輸入兩句授權語句
grant all privileges on database_name.* to 'root'@'192.168.123.10' identified by '123456' with grant option;
flush privileges;
表示給root在192.168.123.10的ip下訪問MySQL,database_name指可以訪問的資料庫,後面的 .* 指資料庫裡面的所有表,最後重新整理一下許可權。
但是在連虛擬機器連線主機MySQL時報了上面的錯,其實就是防火牆的問題,也比較簡單,進入到win7的控制面板—》系統安全—》防火牆—》高階設定下面幾部完成
新建入站規則與出站規則,過程步驟都一致
埠選擇
1)下一步,選擇tcp,特定埠,預設MySQL埠為3306
2)下一步,允許連線
3)繼續下一步,選擇三個複選框
4)點選下一步,填寫名稱與描述
5)完成
完成了入站與出站後
在虛擬機器輸入mysql -h 192.168.xxx.xxx -u root -p
再輸密碼
即可成功!