在Ubuntu-12.04.2上編譯安裝MySQL-5.6.10[安裝筆記] 以下安裝中涉及的幾點需要提前說明的問題: 1. 所有下載的文件將保存在 /usr/local/src/ 目錄下 2. mysql 將以mysql用戶運行,而且將加入 service 開機自動運行 3. mysql 將被安裝在 /usr/local/mysql/ 目錄下 4. mysql 默認安裝使用 utf8 字符集 5. mysql 的數據和日志文件保存在 /var/mysql/ 對應目錄下 6. mysql 的配置文件保存於/var/mysql/my.cnf 1: 下載安裝編譯MySQL源碼需要的庫 sudo apt-get install build-essential libncurses5-dev cmake 2: 下載並解壓MySQL源碼包 cd /usr/local/src/ sudo wget -O mysql-5.6.10.tar.gz http://www.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.10.tar.gz/from/http://cdn.mysql.com/ sudo tar -zxvf mysql-5.6.10.tar.gz sudo /usr/sbin/groupadd mysql sudo /usr/sbin/useradd -g mysql mysql sudo mkdir -p /var/mysql/ sudo mkdir -p /var/mysql/data/ sudo mkdir -p /var/mysql/log/ sudo chmod 777 /var/mysql/data 3: 使用cmake生成安裝文件 cd mysql-5.6.10 sudo cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/var/mysql/data 4: 安裝MySQL sudo make sudo make install sudo chmod +w /usr/local/mysql sudo chown -R mysql:mysql /usr/local/mysql sudo chown -R mysql:mysql /var/mysql/ sudo ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18 sudo cp my-default.cnf /var/mysql/my.cnf (注意:my-large.cnf適用於1G內存左右的服務器,可以根據自己配置情況選用my-large.cnf 或 my-huge.cnf 等不同配置) sudo cp mysql.server /etc/init.d/mysqld 四. 配置啟動MySQL 5.6.10 1. 若有需要請先修改 mysql 的配置 my.cnf vi /var/mysql/my.cnf 2. mysql 初始化安裝 /usr/local/mysql/scripts/mysql_install_db \ --defaults-file=/var/mysql/my.cnf \ --basedir=/usr/local/mysql \ --datadir=/var/mysql/data \ --user=mysql 即系一行 sudo /usr/local/mysql/scripts/mysql_install_db --defaults-file=/var/mysql/my.cnf --basedir=/usr/local/mysql --datadir=/var/mysql/data --user=mysql 3. 將 mysql 加入開機啟動 sudo chmod +x /etc/init.d/mysqld vi /etc/init.d/mysqld (sudo vim /etc/init.d/mysqld 編輯此文件,查找並修改以下變量內容:) basedir=/usr/local/mysql datadir=/var/mysql/data 保存退出 sudo chkconfig --add mysqld =========================================== Error: sudo: chkconfig:找不到命令 Fixed: sudo apt-get install chkconfig =========================================== sudo chkconfig --level 345 mysqld on =========================================== Error: /sbin/insserv: 沒有那個文件或目錄 Fixed: sudo ln -s /usr/lib/insserv/insserv /sbin/insserv =========================================== /usr/local/mysql/bin/mysqladmin -u root password new password eg==>sudo /usr/local/mysql/bin/mysqladmin -u root password 123456 =========================================== Error: /usr/local/mysql/bin/mysqladmin: connect to server at 'localhost' failed error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)' Check that mysqld is running and that the socket: '/tmp/mysql.sock' exists!Fixed: Fixed:(本次原因為 系統有mysql的僵屍進程,可以干掉進程或重啟) reboot =========================================== sudo ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql Test: mysql -u root -p 4. 啟動 mysql sudo service mysqld restart //至此,安裝已經完成