CentOS 7下源碼安裝MySQL 5.7

來源:互聯網
上載者:User

標籤:

網上說linux安裝mysql服務分兩種安裝方法:

①源碼安裝,優點是安裝包比較小,只有幾十M左右,缺點是安裝依賴的庫多,安裝編譯時間長,安裝步驟複雜容易出錯;

②使用官方編譯好的二進位檔案安裝,優點是安裝速度快,安裝步驟簡單,缺點是安裝包很大,300M左右(5.7版本的是600M左右),

對於第二種方法,我搞了一天,無果,到某個環節實在是無法走通,老大那邊也不讓搞了,隔了幾天老大又吩咐我在生產伺服器上安裝mysql,這次我就按照第一種方法源碼安裝方式

下載源碼安裝包

http://dev.mysql.com/downloads/mysql/ 選擇for  linux 下載源碼安裝包(不大於100M的那些)

安裝mysql準備安裝環境

首先檢查是否已經安裝過mysql:

[[email protected] src]# rpm -qa | grep mysql

有的話就卸載掉以前安裝的mysql:

[[email protected] src]# rpm -e --nodeps xxx(xxx是搜尋結果)

並刪除所有的相關檔案:

/etc/my.cnf

編譯和安裝

安裝編譯代碼所需要的包

[[email protected] src]# yum -y install make gcc-c++ cmake bison-devel ncurses-devel libaio
[[email protected] src]# yum install libaio libaio-devel -y
[[email protected] src]# yum install perl-Data-Dumper -y
[[email protected] src]# yum install net-tools -y

解壓安裝包並編譯安裝

[[email protected] src]# tar xvf mysql-5.7.4-m14.tar.gz
[[email protected] src]# cd mysql-5.7.4
[[email protected] mysql-5.7.4]#cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci

常用參數講解:

CMAKE_INSTALL_PREFIX:指定MySQL程式的安裝目錄,預設/usr/local/mysql
DEFAULT_CHARSET:指定伺服器預設字元集,預設latin1
DEFAULT_COLLATION:指定伺服器預設的校對規則,預設latin1_general_ci
ENABLED_LOCAL_INFILE:指定是否允許本地執行LOAD DATA INFILE,預設OFF
WITH_COMMENT:指定編譯備忘資訊
WITH_xxx_STORAGE_ENGINE:指定靜態編譯到mysql的儲存引擎,MyISAM,MERGE,MEMBER以及CSV四種引擎預設即被編譯至伺服器,不需要特別指定。
WITHOUT_xxx_STORAGE_ENGINE:指定不編譯的儲存引擎
SYSCONFDIR:初始化參數檔案目錄
MYSQL_DATADIR:資料檔案目錄
MYSQL_TCP_PORT:服務連接埠號碼,預設3306
MYSQL_UNIX_ADDR:socket檔案路徑,預設/tmp/mysql.sock

 注意事項

從MySQL 5.7.5開始Boost庫是必需的,下載Boost庫,在解壓後複製到/usr/local/boost目錄下,然後重新cmake並在後面的選項中加上選項 -DWITH_BOOST=/usr/local/boost 
(下載:http://sourceforge.net/projects/boost/files/boost/)安裝時要查看安裝包版本

需求boost1.57.0

wget -c http://liquidtelecom.dl.sourceforge.net/project/boost/boost/1.57.0/boost_1_57_0.tar.gz

編譯執行

[[email protected] src]# make && make install(需等待一段時間)

至此,mysql安裝完成

檢查系統是否已經有mysql使用者,如果沒有則建立

[[email protected] mysql-5.7.4]# cat /etc/passwd | grep mysql
[[email protected] mysql-5.7.4]# cat /etc/group | grep mysql

建立使用者(但是不能使用mysql帳號登陸系統)

[[email protected] mysql-5.7.4]# groupadd mysql -s /sbin/nologin
[[email protected] mysql-5.7.4]# useradd -g mysql mysql

修改許可權

[[email protected] mysql-5.7.4]# chown -R mysql:mysql /usr/local/mysql

至此,mysql安裝完畢

配置

進入安裝路徑

[[email protected] mysql-5.7.4]# cd /usr/local/mysql

進入安裝路徑,執行初始化配置指令碼,建立系統內建的資料庫和表.以root初始化操作時要加–user=mysql參數,產生一個隨機密碼(注意儲存登入時用)

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

註:在啟動MySQL服務時,會按照一定次序搜尋my.cnf,先在/etc目錄下找,找不到則會搜尋"$basedir/my.cnf",在本例中就是 /usr/local/mysql/my.cnf,這是新版MySQL的設定檔的預設位置!

注意:在CentOS 7版作業系統的最小安裝完成後,在/etc目錄下會存在一個my.cnf(內建),需要將此檔案更名為其他的名字,如:/etc/my.cnf.bak(改掉它),否則,該檔案會干擾源碼安裝的MySQL的正確配置,造成無法啟動。

在使用"yum update"更新系統後,需要檢查下/etc目錄下是否會多出一個my.cnf,如果多出,將它重新命名成別的。否則,MySQL將使用這個設定檔啟動,可能造成無法正常啟動等問題。

添加防火牆(可以省去)

[[email protected] mysql]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
[[email protected] mysql]# firewall-cmd --reload
 

啟動mysql

添加服務,拷貝服務指令碼到init.d目錄,並設定開機啟動

[[email protected] mysql]# cp support-files/mysql.server /etc/init.d/mysql
[[email protected] mysql]# chkconfig mysql on
[[email protected] mysql]# service mysql start --啟動MySQL

 

查看mysql是否啟動成功

[[email protected] mysql]# netstat -lntp | grep 3306

如果mysql沒有啟動成功,到目錄/usr/local/mysql/data下查看錯誤記錄檔

[[email protected] data]# tail localhost.localdomain.err (localhost.localdomain是主機名稱)

如果沒有組建記錄檔目錄,則mysql安裝沒有成功(再重新編譯安裝一次)

重啟mysql

首先殺死mysql進程

[[email protected] 3306]# pkill mysqld

然後檢查是否已經殺死mysql進程

[[email protected] 3306]# netstat -lntp | grep 3306

此時shell沒有任何輸出,表明已經殺死了mysql進程

然後重啟mysql並再次檢查是否啟動成功

[[email protected] 3306]# service mysql start
[[email protected] 3306]# netstat -lntp | grep 3306

補充

mysql服務的啟動/重啟/停止

啟動mysql服務

# service mysqld start
重啟mysql服務

# service mysqld restart
停止mysql服務

# service mysqld stop
訪問mysql資料庫
串連mysql, 輸入初始化產生的隨機密碼

# mysql -uroot -p
修改root新密碼如 123456

mysql> alter user ‘root‘@‘localhost‘ identified by ‘123456‘;
mysql> quit; 
mysql> exit;(與上等效, 都是退出mysql串連)
使用新密碼重新串連mysql

# mysql -uroot -p

windows串連linux mysql 報 (10061)錯誤

1、查看:netstat -an|grep 3306 是空的,說明沒有在偵聽。
 解決辦法:修改/etc/my.cnf 將其中skip-networking注釋掉,然後運行netstat -an|grep 3306 就可以看到了。
2、對於伺服器來說,首選防火牆必須允許3306連接埠通過,可以在客戶機通過telnet 該連接埠測試。
 (可以關閉防火牆 service iptables stop)
3、設定用於遠端存取的使用者,必須先對該使用者授權,允許遠端存取。
 #mysql -uroot -p
 mysql>grant all on root.* to " identified by "123456";

 

------------------------------------------------------參考文檔--------------------------------------

CentOS 7下源碼安裝MySQL 5.6 :http://www.linuxidc.com/Linux/2015-06/119354.htm

CentOS 6.6 下源碼編譯安裝MySQL 5.7.5:http://www.linuxidc.com/Linux/2015-08/121667.htm

以下是小編為您精心挑選的MySQL相關內容,看看是否有所協助

Linux下安裝編譯MySQL5.5.28  http://www.linuxidc.com/Linux/2015-08/121533.htm

Linux下MySQL 5.6.23安裝  http://www.linuxidc.com/Linux/2015-07/119934.htm

MySQL5.7.3.0安裝配置圖解教程 http://www.linuxidc.com/Linux/2014-10/108397.htm

Ubuntu 14.04下安裝MySQL http://www.linuxidc.com/Linux/2014-05/102366.htm

《MySQL權威指南(原書第2版)》清晰中文掃描版 PDF http://www.linuxidc.com/Linux/2014-03/98821.htm

Ubuntu 14.04 LTS 安裝 LNMP Nginx\PHP5 (PHP-FPM)\MySQL http://www.linuxidc.com/Linux/2014-05/102351.htm

Ubuntu 14.04下搭建MySQL主從伺服器 http://www.linuxidc.com/Linux/2014-05/101599.htm

Ubuntu 12.04 LTS 構建高可用分布式 MySQL 叢集 http://www.linuxidc.com/Linux/2013-11/93019.htm

Ubuntu 12.04下原始碼安裝MySQL5.6以及Python-MySQLdb http://www.linuxidc.com/Linux/2013-08/89270.htm

MySQL-5.5.38通用二進位安裝 http://www.linuxidc.com/Linux/2014-07/104509.htm

更多CentOS相關資訊見CentOS 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=14

 

CentOS 7下源碼安裝MySQL 5.7

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.