Linux下安裝MySQL

安裝環境:Linux服務器CentOS 5.5

安裝版本:mysql-5.5.8.tar.gz

1、安裝 cmake 編譯器。

1)、下載cmake

#cd /usr/local/src

#wget http://www.cmake.org/files/v2.8/cmake-2.8.4.tar.gz

2)、解壓cmake

#tar -zvxf cmake-2.8.4.tar.gz

3)、配置編譯

#cd cmake-2.8.4
#yum -y install gcc
#yum -y install gcc-c++
#yum -y install ncurses-devel
#./configure
#make
#make install

2、安裝MySQL

1)、下載MySQL。

#cd /usr/local/src

#wget http://sdk.ruiya.com/linux/mysql-5.5.9.tar.gz

2)、添加必要的組和擁有者

#groupadd mysql

#useradd -r -g mysql mysql

3)、解壓MySQL

#tar -zvxf mysql-5.5.9.tar.gz

4)、配置編譯

如果是重裝MySql,請先刪除my.cnf如: rm -rf /etc/my.cnf

#mkdir /usr/local/mysql

#mkdir /usr/local/mysql/data

#cd /usr/local/src/mysql-5.5.9

#cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DINSTALL_DATADIR=/usr/local/mysql/data \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DENABLED_LOCAL_INFILE=1

參數說明:

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql        //安裝目錄
-DINSTALL_DATADIR=/usr/local/mysql/data         //數據庫存放目錄
-DDEFAULT_CHARSET=utf8                        //使用utf8字符
-DDEFAULT_COLLATION=utf8_general_ci            //校驗字符
-DEXTRA_CHARSETS=all                            //安裝所有擴展字符集
-DENABLED_LOCAL_INFILE=1                        //允許從本地導入數據

#make

#make install

注意事項:

重新編譯時,需要清除舊的對象文件和緩存信息。 

# make clean
# rm -f  CMakeCache.txt
# rm -rf /etc/my.cnf 

4)、設置目錄權限

# cd /usr/local/mysql

# chown -R root:mysql . //把當前目錄中所有文件的所有者所有者設爲root,所屬組爲mysql

# chown -R mysql:mysql data
 

5)、配置文件

# cp support-files/my-medium.cnf /etc/my.cnf //這個配置僅適合小內存系統(32M - 64M)

打開如下注釋

innodb_data_home_dir = /usr/local/mysql/data
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /usr/local/mysql/data

innodb_buffer_pool_size = 16M
innodb_additional_mem_pool_size = 2M

innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50

添加默認字符集

[client] 
default-character-set = utf8    // 添加編碼支持
[mysqld]
default-character-set = utf8   // 添加編碼支持
max_connections = 10000     //根據服務器性能調節
basedir = /usr/local/mysql //設置安裝目錄,這樣在系統啓動時才能正確運行到/etc/rc.d/init.d/mysql start

6)、創建系統數據庫的表

# cd /usr/local/mysql

# scripts/mysql_install_db --user=mysql

7)、設置權限啓動

設置環境變量

# vi /root/.bash_profile

在PATH=$PATH:$HOME/bin添加參數爲:

PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib

#source /root/.bash_profile

手動啓動MySQL 

# cd /usr/local/mysql

# ./bin/mysqld_safe --user=mysql &   //啓動MySQL,但不能停止

啓動日誌寫在此文件下:/usr/local/mysql/data/localhost.err

關閉MySQL服務

# mysqladmin -u root -p shutdown  //這裏MySQL的root用戶還沒有配置密碼,所以爲空值。

通過腳本啓動MySQL

# ln -s /usr/local/mysql/support-files/mysql.server /usr/local/mysql
//必須注意,是放在mysql目錄下,不是bin目錄下
# cp /usr/local/mysql/support-files/mysql.server /usr/local/mysql  
# mysql.server start //啓動mysql
# mysql.server stop //停止mysql

在引導時啓動MySQL :

# ln -s /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql

# ln -s /usr/local/mysql/mysql.server /etc/rc.d/init.d/mysql 
# cd /etc/rc.d/init.d
# chkconfig --add mysql       //配置是否自動啓動, chkconfig --del mysql 可刪除
# chmod +x /etc/rc.d/init.d/mysql    //添加如執行權限

複製代碼
Tips
Linux運行級別:
分成了8種運行級別,其中常用7種。可在/etc/inittab文件中設置。
0 - halt
1 - Single user mode
2 - Multiuser, without NFS
3 - Full multiuser mode
4 - unused
5 - x11
6 - reboot
默認設置爲:id:3:initdefault:
每一種動行級別都有自已獨立的文件夾,例如:
/etc/rc.d/rc3.d 表示運行級別爲3的配置都存放在這個文件俠中。

# chkconfig --list |grep mysql      //檢查看是否設置爲自啓動
mysql 0:關閉 1:關閉 2:啓用 3:啓用 4:啓用 5:啓用 6:關閉
表示: 運行級別2、3、4、5都會自動啓動mysql
複製代碼

另一種手動配置自已啓動

可能會出現這種情況,如果你試圖在/etc/rc.d/rc3.d目錄下運行../init.d/mysql start可能會收到如下錯誤

Starting MySQLCouldn't find MySQL server (./bin/mysqld_safe[失敗]

可見mysql.server內部引用了一個相對路徑./bin/mysqld_safe,所以這樣就導致失敗。

這樣我們可以直接在rc.local文件中添加啓動腳本:

# chkconfig --del mysql

# cd /etc/rc.d

# vi rc.local //添加: /usr/local/mysql/bin/mysqld_safe --user=mysql &

解決辦法:在/etc/my.cnf 配置文件中添加:

basedir = /usr/local/mysql

8)、修改MySQL的root用戶的密碼

# 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('xxxxxx') where User='root';
mysql>select Host,User,Password  from user where User='root'; 
mysql>flush privileges;
mysql>exit

重新登錄:mysql -u root -p

9)、添加軟鏈接

# ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql 
# ln -s /usr/local/mysql/include/mysql /usr/include/mysql

注意事項:

<1>、MySQL5.5 默認使用InnoDB作爲存儲引擎,所以可以不設置DWITH_MYISAM_STORAGE_ENGINE值

參考:

如何打開MySQL中root賬戶的遠程登錄 

mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";
注意%對應的密碼,如果不相同,可以通過 update user set Password = password('xxxxxx') where User='root'; 修改。

同時注意防火牆是否已關閉或者添加例外。

# /etc/rc.d/init.d/iptables stop

關閉或開啓Linux/CentOS上的防火牆 

導出數據庫生成SQL腳本
mysqldump -h 192.168.200.18  -u root -p TestDB > TestDB.sql

<2>、測試mysql守護進程。

#cd /usr/local/mysql/mysql-test ;

#perl mysql-test-run.pl

<3>、注意事項:

複製代碼
To start mysqld at boot time you have to copy
support
-files/mysql.server to the right place for your system

PLEASE REMEMBER
TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

/usr/local/mysql/bin/mysqladmin -u root password 'new-password'
/usr/local/mysql/bin/mysqladmin -u root -h localhost password 'new-password'

Alternatively you can run:
/usr/local/mysql/bin/mysql_secure_installation

which will also give you the
option of removing the test
databases
and anonymous user created by default. This is
strongly recommended
for production servers.

See the manual
for more instructions.

You can start the MySQL daemon
with:
cd
/usr/local/mysql ; /usr/local/mysql/bin/mysqld_safe &

You can test the MySQL daemon
with mysql-test-run.pl
cd
/usr/local/mysql/mysql-test ; perl mysql-test-run.pl

Please report
any problems with the /usr/local/mysql/scripts/mysqlbug script!
複製代碼

發佈了23 篇原創文章 · 獲贊 13 · 訪問量 44萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章