ubuntu編譯mysql
1.下載源碼包
2.解壓包
>tar -zxvf mysql-5.6.33.tar.gz
3.安裝必要依賴
>sudo apt-get install make bison g++ build-essential libncurses5-dev cmake
4.進入安裝包目錄,配置MySQL安裝參數 //源碼安裝最大的好處就是可以自定義參數,制定安裝目錄,方便管理
>cmake -DCMAKE_INSTALL_PREFIX=[指定MySQL安裝的目錄]/usr/local/mysql -DSYSCONFDIR=/etc -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=[指定MySQL的數據存放目錄如:]/usr/local/mysql/data -DMYSQL_USER=mysql -DWITH_DEBUG=0
>make -j4 #-j數字 表示以多核心運行編譯
>make install #安裝
5. 常用命令軟連接,設置環境變數
>sudo ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18
>sudo ln -s /usr/local/mysql/bin/mysql /usr/bin
>sudo ln -s /usr/local/mysql/bin/mysqladmin /usr/bin
6.初始化資料庫
>sudo /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
7.啟動MySQL伺服器
>sudo /usr/local/mysql/bin/mysqld start
#如果啟動不了,考慮編譯安裝時自定義數據存放目錄,所以導致mysqld找不到對應的目錄
解決:> vi /usr/local/mysql/bin/mysqld
修改datadir = [指定MySQL的數據存放目錄如:] /usr/local/mysql/data
保存退出,再次啟動 >sudo /usr/local/mysql/bin/mysqld start #OK 搞定
8. 啟動成功後創建root用戶的密碼
>/usr/local/mysql/bin/mysqladmin -u root password '新密碼'
9.啟動MySQL端
>/usr/local/mysql/bin/mysql -u root -p
>輸入密碼
10.設置環境變數
vi /home/個人目錄/.bashrc 或者 vi /root/.bashrc
#在後面添加這段代碼
export PATH="$PATH:/home/sy/lnmp/mysql/bin"
#重啟電腦ok
#若不想重啟電腦,僅限當次有效(重啟失效)
#執行命令
>export PATH=$PATH:/usr/local/mysql/bin
>mysql --version //測試
❷ Ubuntu手動安裝MySQL
從官網下載安裝包MySQL :: Download MySQL Community Server
解壓到/usr/local目錄下,重命名為mysql
然後在終端輸入以下命令:
shell> groupadd mysql
shell> useradd -r -g mysql mysql
shell> cd /usr/local
shell> cd mysql
shell> chown -R mysql . (別忘了最後有一個點,下同)
shell> chgrp -R mysql .
shell> scripts/mysql_install_db --user=mysql
這句執行後如果報錯:
scripts/mysql_install_db: 244: ./bin/my_print_defaults: not found
Neither host 'ubuntu' nor 'localhost' could be looked up with
./bin/resolveip
Please configure the 'hostname' command to return a correct
hostname.
If you want to solve this at a later stage, restart this script
with the --force option
在終端輸入uname -a命令查看系統版本,如果結果為x86_64則說明系統是64位的,是不是下載的安裝包不對了?到官網下載64位版本的,把剛解壓到mysql目錄刪掉,重新執行上面這一條語句
如果又報錯:./bin/mysqld: error while loading shared libraries: lio.so.1: cannot open shared object file: No such file or directory
這說明少個東西,執行下面這條命令:
sudo apt-get install lio-dev
安裝完成後再執行scripts/mysql_install_db --user=mysql這條語句
繼續執行後續命令:
shell> chown -R root .
shell> chown -R mysql data
好了,下面啟動:
sudo ./support-files/mysql.server start
# /usr/local/mysql/bin/mysqld_safe --user=mysql &
cd /usr/local/mysql/bin //進入 bin目錄
#mysql //運行mysq命令
如果沒有沒有啟動 或出現 Can't connect to local MySQL server through socket '/tmp/mysql.sock'
解決方法: #cd /usr/local/mysql/support-files //進入該目錄
#./mysql.server start //啟動即可 既可在生成/tmp/mysql.sock
如果/tmp/mysql.sock 無該文件存在,且mysql是處於 開啟的狀態?
解決方法: #netstat -an | grep 3306 //查看 3306埠
#ps -ef | grep mysql // 查找 mysql 進程
# kill -9 進程號 //強制刪除mysql的進程號
#./mysql.server start // 啟動即可 既可在生成/tmp/mysql.sock
如果在任意路徑下如數mysql命令得到的無該命令咋辦呢?
解決方法:修改 /etc/profile 文件 在文件中加入
PATH=$PATH:/usr/local/mysql/bin/
export PATH (保存即可退出執行 source /etc/profile)
以上操作完全可以 在任意目錄執行 # mysql 命令
如果想執行 service mysql start or restart stop 命令咋辦的? 在不能老#./mysql.server start
解決方法:將 mysql.server 復制一份到 /etc/rc.d/init.d 下並改名 mysql 或 建個連接文件
假設當前目錄為 /etc/rc.d/init.d
如: #cp /usr/local/mysql/support-files/mysql.server mysql (復制)
或 : #ln -s /usr/local/mysql/support-files/mysql.server mysql (建立連接文件)
完成以上操作即可 執行 service mysql start (or restart stop)
用如下命令修改MYSQL密碼
# /usr/local/mysql/bin/mysqladmin -u root password yourpassword //默認安裝密碼為空,為了安全你必須馬上修改
# chmod 700 /etc/init.d/mysql
# chkconfig --add mysqld
# chkconfig --level 345 mysql on //編譯目錄的一個腳本設置使mysql每次啟動都能自動運行
# service mysql start
# netstat -atln
//啟動mysql服務
//查看3306埠是否打開。要注意在防火牆中開放該埠。
可以用telnet localhost 3306來測試一下,如果有反應,那就表明安裝成功了