標籤:
網上說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