安裝步驟:
inux平臺mysql source安裝的安裝及配置步驟
1、 下載MySQL的sourcecode
進入mysql download頁面http://dev.mysql.com/downloads/

點擊進入http://dev.mysql.com/downloads/mysql/ 到如下頁面:

選擇sourcecode下拉列表進入到如下頁面:

點擊 Generic Linux (Architecture Independent), Compressed TAR Archive,進入

選擇 » No thanks, just take me to the downloads!
進行下載
2、 安裝MySQL
解壓mysql5 的安裝包:
[root@niutian365 local]# tar –zxvf mysql-5.5.16.tar.gz
進入解壓后的安裝包
:[root@niutian365 local]# cd mysql-5.5.16
3、 選擇root用戶進入,建立mysql用戶組和用戶名:
建立mysql用戶組:groupadd mysql
建立mysql用戶并將mysql用戶加到mysql用戶組中: useradd -g mysql mysql
4、 創建/usr/mysql/mysql和/usr/mysql/data和/usr/mysql/log目錄
mkdir /usr/mysql/mysql
mkdir /usr/mysql/data
cmake 編譯sourcecode
cmake -DCMAKE_INSTALL_PREFIX=/mysql/mysql
-DMYSQL_DATADIR=/mysql/mysql/data
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_FEDERATED_STORAGE_ENGINE=1
-DWITH_PARTITION_STORAGE_ENGINE=1
-DENABLED_LOCAL_INFILE=1
-DMYSQL_UNIX_ADDR=/mysql/mysql/data/mysql.sock
5、 復制配置文件到/etc下
[root@niutian365 local]#vi /etc/my.cnf
修改
[mysqld]
basedir=/home/mysql/mysql
datadir=/home/mysql/data
socket=/var/lib/mysql/mysql.sock
和
[mysqld_safe]
log-error=/home/mysql/log/mysqld.log
pid-file=/home/mysql/log/mysqld.pid
6、 修改文件的文件主:
chown –R mysql:mysql /home/mysql/log/
chown –R mysql:mysql /var/lib/mysql
運行[root@niutian365 local]#./usr/local/mysql/bin/mysql_install_db
在這一步中可能會發生錯誤,查看錯誤原因,如果是由于權限的問題則需要將父目錄擁有者改成mysql:mysql,使用chown –R mysql:mysql XXX
7、 運行mysql
進入mysql的bin目錄,運行sh mysqld_safe
如果不能正常運行,可以查看log目錄下的mysqld.log,查看錯誤信息,然后做出相應的修改。
8、 將mysql注冊為服務
將mysql源代碼目錄的support-files/mysql.server拷貝至/etc/init.d/下,重命名為mysqld
安裝chkconfig: apt-get install chkconfig
運行 chkconfig -add mysql注冊服務
運行 mysql start開啟服務
運行 mysql stop關閉服務
修改遠程登錄mysql權限,現在提供兩種支持遠程登錄的方法:
1. 改表法。其中在user表中的host那一列保存的是user允許的用戶登錄的位置信息,通過修改這一列的數據來修改mysql的遠程登錄,使用如下命令進入mysql,mysql –u root –p 輸入密碼(默認為空)第一次進入到數據庫系統。
選擇數據庫:mysql> use mysql;
如下圖所示執行sql命令:

由上圖可以看到,mysql只允許127.0.0.1和localhost,以及localhost.localdomain的機器以root身份登錄到mysql數據庫中,下面我們做如下更改:

上面的error是有host是唯一屬性導致的錯誤,可以不用理會,現在我們已經改好了mysql遠程登錄的配置,一定要主要通過如下命令是上述做的改動生效。
mysql> FLUSH PRIVILEGES;
好了現在可以在其他機器上進行遠程登錄mysql了。
2. 授權法。
使用如下命令:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '111111' WITH GRANT OPTION;是root用戶在任意機器上以111111密碼訪問,上面的執行結果如下:

實際上,在user表中添加了一行,如上面標注部分。如果你想允許用戶myuser從ip為192.168.1.3的主機連接到mysql服務器,并使用mypassword作為密碼,執行如下語句:
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
Mysql修改密碼:
UPDATE user SET password=password('111111') where user='root';
mysql> FLUSH privileges;
如下圖:
![說明: C:\Users\roger\AppData\Roaming\Tencent\Users\455769859\QQ\WinTemp\RichOle\]T~OX)`1~3OC8XFW04KP9DI.jpg](/images/cppblog_com/roger/8.jpg)
請注意,此密碼是經過hash后的密碼,不能用原密碼如mysql> update user set password = 111111 where user = 'root' ;這樣是不正確的。
Mysql添加用戶:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'sphinx'@'%' IDENTIFIED BY '111111' WITH GRANT OPTION;
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
以上命令是創建sphinx用戶遠程登錄mysql,密碼是111111。