Mysql編譯安裝 編譯安裝 www.2cto.com 編譯安裝之前的准備工作: 添加mysql帳號 # useradd mysql 目的:避免數據庫初始化出現問題 安裝: [root@www bin]# tar xvzf mysql-5.1.34.tar.gz -C /usr/local/src/ [root@www lamp]# cd /usr/local/src/ [root@www src]# cd mysql-5.1.34/ [root@www mysql-5.1.34]# ./configure --with-mysqld-user=mysql --prefix=/usr/local/mysql --with-extra-charsets=all --exec-prefix=/usr/local/mysql --with-innodb // 運行mysql的時候用哪個身份執行 安裝目錄 默認支持所有字符集 安裝目錄會產生一個bin 表類型 [root@www mysql-5.1.34]#make && make install www.2cto.com 初始化數據庫: [root@www mysql-5.1.34]# cd /usr/local/mysql/ [root@www mysql]# ls bin docs include lib libexec mysql-test share sql-bench // 目錄裡應該有一個默認的存放mysql數據的var目錄,進行數據庫的初始化才能產生 [root@www mysql]# cd bin [root@www bin]# ./mysql_install_db 進行數據庫的初始化 修改權限: [root@www mysql]# chown .mysql -R . // 遞歸修改當前目錄(mysql安裝目錄)所有文件的所屬組為mysql組 [root@www mysql]# ll -d . // 查看當前目錄的詳細信息 -d 將目錄象其它文件一樣列出,而不是列出它們的 內容 drwxr-xr-x 11 root mysql 4096 12-25 11:58 . [root@www mysql]# chown mysql var -R // 遞歸修改var目錄的所有者為mysql帳戶 啟動: [root@www mysql]# cd bin/ [root@www bin]# ./mysqld_safe --user=mysql & // 後台啟動mysql [root@www bin]# ps -e 22127 pts/1 00:00:00 mysqld_safe 22178 pts/1 00:00:00 mysqld 看到這兩個進程就說明mysql已經啟動成功了 啟動之後也會產生一個套接字文件 [root@www bin]# cd /tmp/ [root@www tmp]# ls mysql.sock mysql.sock 在/tmp下,如果有了這個文件,也說明mysql已經啟動了,沒有這個文件,mysql是不會啟動的 ---------------- 修改環境變量: 修改家目錄的環境變量,可以在任意目錄下執行mysql bin目錄下的命令 [root@www ~]# vim .bash_profile PATH=/usr/local/mysql/bin:$PATH:$HOME/bin 使之生效: [root@www ~]# source .bash_profile 測試: [root@www ~]# which mysqladmin /usr/local/mysql/bin/mysqladmin [root@www ~]# pkill mysql // 殺死有mysql的進程 另一種啟動mysql的方法:把mysql自己的啟動腳本拷貝到init.d裡面 [root@www mysql]# pwd /usr/local/mysql/share/mysql [root@www mysql]# cp mysql.server /etc/rc.d/init.d/ // 可以改名的比如說改成mysqld [root@www mysql]# service mysql.server restart -------------------- 問題排查: 如果數據庫初始化沒成功,可能是下面的原因: [root@www mysql]# grep mysql /etc/passwd 首先要有mysql這個用戶 mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash [root@www mysql]# /etc/init.d/mysqld stop 原來裝了一個mysql 的rpm包,而且啟動了,先停掉 停止 MySQL: [確定] [root@www mysql]# rpm -q mysql 把原來裝的rpm包卸載掉 mysql-5.0.45-7.el5 [root@www mysql]# rpm -e mysql --nodeps [root@www bin]# ./mysql_install_db [root@www bin]# cd .. [root@www mysql]# ls bin docs include lib libexec mysql-test share sql-bench var 這時候就看到有一個var產生了