天天看點

centos7安裝mysql5.7解壓版

環境:centos7 64位

本教程安裝MySQL是通過編譯過的二進制檔案進行安裝。是不針對特定平台的通用安裝方法,解壓版本的mysql,使用的二進制檔案是字尾為.tar.gz的壓縮檔案

1、下載下傳 http://dev.mysql.com/downloads/mysql/

2、解壓縮到/usr/local/下面,mysql的主目錄命名為mysql,注意後面建立mysql使用者群組可以不用,即預設mysql屬于root使用者群組

     如果是.tar.gz檔案直接解壓  我下載下傳的是.tar 檔案 執行

    [root@localhost local]# tar -xvf mysql-5.7.16-linux-glibc2.5-i686.tar

  [[email protected] local]# tar xvf mysql-5.7.16-linux-glibc2.5-i686.tar.gz

centos7安裝mysql5.7解壓版

解壓後的檔案夾重命名

[r[email protected] local]# mv mysql-5.7.16-linux-glibc2.5-i686 /mysql

3、在mysql下面建立data資料庫檔案目錄

[[email protected] local]# mkdir mysql/data

4、建立mysql的使用者組和使用者,并對mysql目錄設定使用者組和使用者(如果快速用root使用者啟動和使用mysql,可以省略這個步驟)

[[email protected] local]# groupadd mysql

[[email protected] local]# useradd mysql -g mysql

[[email protected] local]# cd mysql

[[email protected] mysql]# pwd

/usr/local/mysql

[[email protected] mysql]# chown -R mysql .

[[email protected] mysql]# chgrp -R mysql .

5、初始化mysql并啟動mysql服務

[[email protected] mysql]# cd /usr/local/mysql/bin

[[email protected] bin]# yum install libaio

已加載插件:fastestmirror, refresh-packagekit, security

設定安裝程序

Loading mirror speeds from cached hostfile

* base: mirrors.opencas.cn

* extras: mirrors.btte.net

* updates: mirrors.btte.net

包 libaio-0.3.107-10.el6.i686 已安裝并且是最新版本

無須任何處理

[[email protected] bin]# ./mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data

2016-08-11 12:00:25 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize

2016-08-11 12:00:31 [WARNING] The bootstrap log isn't empty:

2016-08-11 12:00:31 [WARNING] 2016-01-09T04:00:29.262989Z 0 [Warning] --bootstrap is deprecated. Please consider using --initialize instead

2016-08-11T04:00:29.264643Z 0 [Warning] Changed limits: max_open_files: 1024 (requested 5000)

2016-08-11T04:00:29.264653Z 0 [Warning] Changed limits: table_open_cache: 431 (requested 2000)

[[email protected] bin]# cd /usr/local/mysql/support-files

[[email protected] support-files]# ./mysql.server start

Starting MySQL....                                         [确定]

以上操作流程如下圖

centos7安裝mysql5.7解壓版

如果啟動報錯:“The server quit without updating PID file ”,是因為pid檔案無法在mysql的data中建立,缺少權限,使用如下指令設定data目錄權限。chmod -R 777 /usr/local/mysql/data

6、登入mysql,此版本最新版不許空密碼登入,實際上有個初始化密碼儲存在/root/.mysql_secret這個檔案裡面,用這個密碼第一次登入後,再修改密碼。是以先cat檢視下初始化密碼(随機的,每次安裝看到的密碼都不一樣):

[[email protected] support-files]# cat /root/.mysql_secret

# Password set for user '[email protected]' at 2016-10-30 21:17:12 

q<.yhitwgg!V

[[email protected] support-files]# cd /usr/local/mysql/bin

[[email protected] bin]# mysql -uroot -p

此處特别說明 如果出現-bash: mysql: command not found 錯誤

出下這種錯誤一般是由于安裝了一鍵安裝腳本後沒有對指令做連結,可以用下面的指令找到mysql指令的絕對路徑:

find / -name mysql

假設查找到的路徑為/usr/local/mysql/bin/mysql,可以使用下面的指令設定一個連結:

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

然後就可以使用mysql指令了。

 利用初始化密碼q<.yhitwgg!V登入mysql   操作如下圖:

centos7安裝mysql5.7解壓版

顯示登入成功,可以執行mysql指令操作了!

未配置的情況下每次登入需要進入bin目錄下操作:

7、 複制配置檔案

[[email protected] mysql] cp support-files/my-medium.cnf /etc/my.cnf

此處特别說明 如果出現 下面這種錯誤
centos7安裝mysql5.7解壓版

找一下my-default.cnf 檔案的位置

[[email protected] ~]# find / -name my-default.cnf 

比如在(/usr/local/mysql/support-files/my-default.cnf)位置

作如下操作:

[ro[email protected] mysql]# cp support-files/my-default.cnf /etc/my.cnf

8. 将mysqld服務加入開機自啟動項。

*首先需要将scripts/mysql.server服務腳本複制到/etc/init.d/,并重命名為mysqld。

[[email protected]] cp support-files/mysql.server /etc/init.d/mysqld

*通過chkconfig指令将mysqld服務加入到自啟動服務項中。

[[email protected] mysql]#chkconfig --add mysqld

*注意服務名稱mysqld就是我們将mysql.server複制到/etc/init.d/時重命名的名稱。

*檢視是否添加成功

[[email protected] mysql]#chkconfig --list mysqld

mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off

9. 重新開機系統,mysqld就會自動啟動了。

*檢查是否啟動

[[email protected] mysql]#netstat -anp|grep mysqld

tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2365/mysqld 

unix 2 [ ACC ] STREAM LISTENING 14396 2365/mysqld /tmp/mysql.sock

*如果不想重新啟動,那可以直接手動啟動。

[[email protected] mysql]#service mysqld start

Starting MySQL.. SUCCESS!

10 運作用戶端程式mysql,在mysql/bin目錄中,測試能否連接配接到mysqld。

[[email protected] mysql]#/usr/local/mysql/bin/mysql -uroot -p

password:

Welcome to the MySQLmonitor. Commands end with ; or \g.

Your MySQL connection idis 2

Server version:5.5.29-log MySQL Community Server (GPL)

Copyright (c) 2000, 2012,Oracle and/or its affiliates. All rights reserved.

Oracle is a registeredtrademark of Oracle Corporation and/or its affiliates. Other names may betrademarks of their respective owners.

Type 'help;' or '\h' forhelp. Type '\c' to clear the current input statement.

mysql> quit

Bye

*此時會出現mysql>指令提示符,可以輸入sql語句,輸入quit或exit退出。為了避免每次都輸入mysql的全路徑/usr/local/mysql/bin/mysql,可将其加入環境變量中,在/etc/profile最後加入兩行指令: 

  1. 方法一:  
  2. 在/etc/profile檔案中最後一行添加變量export PATH=$PATH:/usr/local/mysql/bin

    【對所有使用者生效(永久的)】  

  3. 用VI在檔案/etc/profile檔案中增加變量,該變量将會對Linux下所有使用者有效,并且是“永久的”。  
  4. 要讓剛才的修改馬上生效,需要執行以下代碼  
  5. # source /etc/profile  
  6. 方法二:  
  7. 在使用者目錄下的.bash_profile檔案中增加變量【對單一使用者生效(永久的)】  
  8. 用VI在使用者目錄下的.bash_profile檔案中增加變量,改變量僅會對目前使用者有效,并且是“永久的”。  
  9. 要讓剛才的修改馬上生效,需要在使用者目錄下執行以下代碼  
  10. # source .bash_profile  
  11. 方法三:  
  12. 直接運作export指令定義變量【隻對目前shell(BASH)有效(臨時的)】  
  13. 在shell的指令行下直接使用[export變量名=變量值]定義變量,該變量隻在目前的shell(BASH)或其子shell(BASH)下是有效的,shell關閉了,變量也就失效了,再打開新shell時就沒有這個變量,需要使用的話還需要重新定義。  
  14. 例如:export PATH=$PATH:/usr/local/mysql/bin

這樣就可以在shell中直接輸入mysql指令來啟動用戶端程式了

[[email protected] mysql]#mysql -uroot -p

password:

Welcome to the MySQLmonitor. Commands end with ; or \g.

Your MySQL connection idis 3

Server version:5.5.29-log MySQL Community Server (GPL)

Copyright (c) 2000, 2012,Oracle and/or its affiliates. All rights reserved.

Oracle is a registeredtrademark of Oracle Corporation and/or its

affiliates. Other namesmay be trademarks of their respective

owners.

Type 'help;' or '\h' forhelp. Type '\c' to clear the current input statement.

mysql> 

11、改mysql的root密碼,新密碼在此為'123456'

mysql> set password=password('123456');

Query OK, 0 rows affected, 1 warning (0.00 sec)

12、設定遠端登入mysql。在Linux下為了安全,預設是不允許mysql本機以外的機器通路mysql資料庫服務,是以需要重新授權root。友善遠端通路。

mysql> use mysql;

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> select Host,User from user;

+-----------+-----------+

| Host | User |

+-----------+-----------+

| % | root |

| localhost | mysql.sys |

| localhost | root |

+-----------+-----------+

3 rows in set (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON *.* TO root@'%' identified by '000000';

Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

授權語句最後的‘000000’是mysql資料庫root使用者的新密碼。

13、非必要的步驟,如果遠端連不上,估計是防火牆的問題,關閉試試:

[[email protected] mysql]# service iptables stop

setenforce 0iptables:将鍊設定為政策 ACCEPT:filter [确定]

iptables:清除防火牆規則: [确定]

iptables:正在解除安裝子產品: [确定]

[[email protected] mysql]# setenforce 0

setenforce: SELinux is disable

繼續閱讀