CentOS 6.5下安裝MySQL 5.5

fiona8953發表於2014-08-24


安裝方式分為rpm和原始碼編譯安裝兩種,本文是採用mysql原始碼編譯方式,編譯器使用Cmake。軟體需要mysql-5.5.29.tar.gz和cmake-2.8.10.2.tar.gz,請自行下載。
下載地址:


其中mysql使用最新的穩定版本,即最新試用版的上一個版本,且非rc或者alpha的版本,Cmake直接用的最新版。

1.上傳mysql-5.5.29.tar.gz和cmake-2.8.10.2.tar.gz到/usr/local資料夾下。

2.CentOS安裝g++和ncurses-devel

[root@fiona local]# yum install gcc-c++
[root@fiona local]# yum install ncurses-devel

3.cmake的安裝

[root@fiona local]# nohup wget &

[root@fiona src]# tar -zxv -f cmake-2.8.10.2.tar.gz

[root@fiona src]# cd cmake-2.8.10.2
[root@fiona cmake-2.8.10.2]# ./configure
[root@fiona cmake-2.8.10.2]# make
[root@fiona cmake-2.8.10.2]# make install

4.將cmake永久加入系統環境變數

用vi在檔案/etc/profile檔案中增加變數,使其永久有效,
[root@fiona cmake-2.8.10.2]# vi /etc/profile

在檔案末尾追加以下兩行程式碼:
PATH=/usr/local/cmake-2.8.10.2/bin:$PATH
export PATH

執行以下程式碼使剛才的修改生效:
[root@fiona cmake-2.8.10.2]# source /etc/profile

用 export 命令檢視PATH值

[root@fiona cmake-2.8.10.2]# echo $PATH

5.建立mysql的安裝目錄及資料庫存放目錄

[root@fiona local]# mkdir -p /usr/local/mysql //安裝mysql
[root@fiona local]# mkdir -p /usr/local/mysql/data //存放資料庫

6.建立mysql使用者及使用者組

[root@fiona local] groupadd mysql
[root@fiona local]useradd -r -g mysql mysql

7.編譯安裝mysql 

[root@fiona src]# nohup wget &   //mysql-5.5.39此版本已無 

[root@fiona src]# tar zxvf mysql-5.5.39.tar.gz //解壓
[root@fiona src]# cd mysql-5.5.29
[root@fiona mysql-5.5.39]#
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306
[root@fiona mysql-5.5.39]# make
[root@fiona mysql-5.5.39]# make install

8.檢驗是否安裝成功

[root@fiona mysql-5.5.39]# cd  /usr/local/mysql

[root@fiona mysql]# ls

bin      data  include         lib  mysql-test  scripts  sql-bench

COPYING  docs  INSTALL-BINARY  man  README      share    support-files
有bin等以上檔案的話,恭喜你已經成功安裝了mysql。

配置mysql

9.設定mysql目錄許可權

[root@fiona mysql]# cd /usr/local/mysql //把當前目錄中所有檔案的所有者設為root,所屬組為mysql
[root@fiona mysql]# chown -R root:mysql .

[root@fiona mysql]# chown -R mysql:mysql data

10.將mysql的啟動服務新增到系統服務中

[root@fiona mysql]# cp support-files/my-medium.cnf /etc/my.cnf

cp:是否覆蓋"/etc/my.cnf"? y

11.建立系統資料庫的表

[root@fiona mysql]# cd /usr/local/mysql

[root@fiona mysql]# scripts/mysql_install_db --user=mysql

12.設定環境變數

[root@fiona mysql]# vi /root/.bash_profile
在修改PATH=$PATH:$HOME/bin為:
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib
[root@fiona mysql]# source /root/.bash_profile //使剛才的修改生效

13.手動啟動mysql

[root@fiona mysql]# ./bin/mysqld_safe --user=mysql & //啟動MySQL,但不能停止
mysqladmin -u root -p shutdown //此時root還沒密碼,所以為空值,提示輸入密碼時,直接回車即可。

14.將mysql的啟動服務新增到系統服務中

[root@fiona mysql]# cp support-files/mysql.server /etc/init.d/mysql

15.啟動mysql

[root@fiona mysql]# service mysql start
Starting MySQL... ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid).

啟動失敗:
我這裡是許可權問題,先改變許可權
[root@fiona mysql]# chown -R mysql:mysql /usr/local/mysql

接著啟動伺服器
[root@fiona mysql]# /etc/init.d/mysql start
Note:
MySQL啟動方式

1)直接呼叫mysqld。這是最不常見的方式,不推薦使用。
2)執行mysql.server指令碼
mysql.server指令碼透過呼叫mysqld_safe啟動伺服器,該指令碼可以透過引數start和stop指定啟動還是關閉。
mysql.server指令碼在MySQL安裝目錄下的share/mysql目錄中,如果是採用安裝的MySQL,則可以在support-files目錄裡找到。如果想使用.server,則必須把它複製到合適的執行級別目錄中,如下所示:
cp mysql.server /etc/init.d/mysqld  
chmod 755 /etc/init.d/mysqld  
如上配置之後,就可以利用以下命令啟動和關閉MySQL例項了:
service mysqld start/stop  
/etc/init.d/mysqld start/stop  
使用chkconfig命令配置開機自動啟動:
[sql] 
chkconfig --add mysqld  
chkconfig mysqld on  
執行以下命令檢查是否正確啟用:
[plain] 
[root@data data]# chkconfig --list mysqld  
mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off   MySQL關閉方式
mysqladmin -p -u root shutdown  
啟動後,後臺執行的程式
root      2294     1  0 03:53 pts/1    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/fiona.pid
mysql     2595  2294  0 03:53 pts/1    00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/data/fiona.err --pid-file=/usr/local/mysql/data/fiona.pid --socket=/usr/local/mysql/mysql.sock --port=3306

16.修改MySQL的root使用者的密碼以及開啟遠端連線

[root@localhost mysql]# mysql -u root mysql

mysql> use mysql;
mysql> desc user;
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root"; //為root新增遠端連線的能力
mysql> update user set Password = password('abc123') where User='root'; //設定root使用者密碼
mysql> select Host,User,Password from user where User='root';
mysql> flush privileges;
mysql> exit

17.重新登入

[root@localhost mysql]# mysql -u root -p
Enter password:abc123

若還不能進行遠端連線,關閉防火牆
[root@localhost]# /etc/rc.d/init.d/iptables stop

 
18.配置Innodb
[root@fiona plugin]# cd /etc
[root@fiona etc]# vi my.cnf
# To take best advantage of current InnoDB features
innodb_file_per_table=1
innodb_file_format=barracuda
innodb_strict_mode=1

//官方推薦

19.資料庫的關閉
[root@fiona mysql]# /usr/local/mysql/support-files/mysql.server stop
Shutting down MySQL. SUCCESS! 

啟動Mysql時報錯:
140907 14:04:09 mysqld_safe Logging to '/usr/local/mysql/data/fiona.err'.
140907 14:04:09 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
140907 14:04:11 mysqld_safe mysqld from pid file /usr/local/mysql/data/fiona.pid ended
由於登陸使用瞭如下命令:
shell> ./bin/mysqld_safe --user=root &
導致再次登陸時候使用
shell> ./bin/mysqld_safe --user=mysql &
解決方法:初始化mysql
/usr/local/mysql/scripts/mysql_install_db --user=mysql

1、#service mysqld start
       提示:mysqld未被識別的服務
       原因:沒有安裝mysql-server
       解決方法:安裝mysql-server
               yum安裝:#yum -y install mysql-server
       安裝mysql所需rpm軟體包:
                 mysql-5.1.61-1.el6_2.1.i686.rpm
                 mysql-server-5.1.61-1.el6_2.1.i686.rpm
                 mysql-libs-5.1.61-1.el6_2.1.i686.rpm

2、#mysql -u root -p passwd
     提示:ERROR 2002 (HY000):Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
     原因:沒有開啟mysqld服務
     解決方案:切換到root,啟用mysqld服務
                命令:#service mysqld start

3、檢視mysql安裝路徑
     命令:#whereis mysql

4、檢視mysqld服務是否已新增到linux
     命令:#chkconfig --list mysqld
     已新增提示:mysql           0:關閉   1:關閉   2:關閉   3:關閉   4:關閉    5:啟用   6:關閉

5、mysqld服務啟用時,檢視伺服器是否在執行
     命令:ps -ef | grep mysqld


Reference:
http://dev.mysql.com/doc/refman/5.5/en/binary-installation.html
http://www.cnblogs.com/zhoulf/archive/2013/01/25/zhoulf.html

mysql啟動的四種方式(推薦mysql_safe)
http://blog.chinaunix.net/uid-13642598-id-3153537.html
mysql DBA:mysqladmin常用命令總結



mysql之編譯安裝mysql以及mysql mysqladmin工具的使用說明

mysql的監聽埠是 3306
[root@fiona2 bin]# ss -tnl
State      Recv-Q Send-Q                        Local Address:Port                          Peer Address:Port 
LISTEN     0      128                                       *:37677                                    *:*     
LISTEN     0      128                                      :::111                                     :::*     
LISTEN     0      128                                       *:111                                      *:*     
LISTEN     0      128                                      :::22                                      :::*     
LISTEN     0      128                                       *:22                                       *:*     
LISTEN     0      128                               127.0.0.1:631                                      *:*     
LISTEN     0      128                                     ::1:631                                     :::*     
LISTEN     0      128                                      :::19419                                   :::*     
LISTEN     0      50                                        *:3306                                     *:*     

[root@fiona2 bin]# mysqladmin -uroot -p processlist
+----+------+-----------+----+---------+------+-------+------------------+
| Id | User | Host      | db | Command | Time | State | Info             |
+----+------+-----------+----+---------+------+-------+------------------+
| 7  | root | localhost |    | Query   | 0    |       | show processlist |
+----+------+-----------+----+---------+------+-------+------------------+

===================================================
[root@fiona home]# su - mysql
su: 警告:無法切換到目錄/home/mysql: 沒有那個檔案或目錄

# cp -rfv /etc/skel/.* /home/mysql
# chown -Rv mysql.mysql /home/mysql

解決bash: mysql: command not found 的方法
原因:這是由於系統預設會查詢/usr/bin下的命令,如果這個命令不在這個目錄下,當然會找不到命令,我們需要做的就是對映一個連結到/usr/bin目錄下,相當於建立一個連結檔案。

首先得知道mysql命令或mysqladmin命令的完整路徑,比如mysql的路徑是:/usr/local/mysql/bin/mysql,我們則可以這樣執行命令:

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


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26477398/viewspace-1257008/,如需轉載,請註明出處,否則將追究法律責任。

相關文章