由於客戶的CentOS服務器沒有安裝yum工具,只能通過下載tar.gz包安裝mysql,於是跟着萬能的百度開啟了漫漫踩坑之旅:
1、下載mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
2、解壓到/usr/local/文件夾下,並改名為mysql
3、添加mysql用戶組和mysql用戶
groupadd mysql
useradd -r -g mysql mysql
4、進入mysql文件夾
5、修改當前目錄擁有者為剛才新建的mysql用戶:
chown -R mysql:mysql ./
6、復制默認全局啟動參數配置文件到/etc目錄:
網上的教程說是
cp ./support-files/my-medium.cnf /etc/my.cnf
結果發現support-files目錄下根據沒有my-medium.cnf文件;於是繼續百度、google,最終用下面的方式解決:
先修改support-files/my-default.cnf文件,在文件中增加:
[mysql] # 設置mysql客戶端默認字符集 default-character-set=utf8 socket=/var/lib/mysql/mysql.sock [mysqld] skip-name-resolve #設置3306端口 port = 3306 socket=/var/lib/mysql/mysql.sock # 設置mysql的安裝目錄 basedir=/usr/local/mysql # 設置mysql數據庫的數據的存放目錄 datadir=/usr/local/mysql/data # 允許最大連接數 max_connections=200 # 服務端使用的字符集默認為utf8字符集 character-set-server=utf8 # 創建新表時將使用的默認存儲引擎 default-storage-engine=INNODB lower_case_table_name=1 max_allowed_packet=16M
然后復制到/etc下,並改名為my.cnf:
cp ./support-files/my-default.cnf /etc/my.cnf
7、執行安裝包中自帶腳本,安裝數據庫:
./scripts/mysql_install_db --user=mysql
結果報錯(具體錯誤我也忘了),安裝不下去,改為:
./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql
可以往下裝了,但是又報錯:Can't find messagefile /usr/share/mysql/errmsg.sys
網上有解決方案是在my.conf文件的[mysqld]部分增加一句:
language = /usr/local/mysql/share/english
但是不起作用,錯誤依舊。后來我把/user/local/mysql/share/english文件夾下的errmsg.sys文件復制到/usr/share/mysql/下,問題解決,終於裝上了。
8、修改當前目錄擁有者為root用戶,修改data目錄擁有者為mysql用戶
chown -R root:root ./ chown -R mysql:mysql data
9、啟動mysql
sudo /usr/local/mysql/support-files/mysql.server start
10、修改root密碼
./bin/mysqladmin -u root password '密碼'
11、部署應用后,發現mysql命令可以連接,但是jdbc連不上mysql,經過一番折騰,發現是授權問題,給root授權訪問localhost的權限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost'IDENTIFIED BY '12345' WITH GRANT OPTION; FLUSH PRIVILEGES;
神奇的是授權后還是不行,查看mysql的user表:
SELECT user,host,password FROM mysql.user;
發現root訪問localhost、127.0.0.1、%的密碼居然不一樣,修改:
UPDATE mysql.user SET password=PASSWORD('密碼') WHERE user='root';
重啟mysql,終於jdbc也可以正常連接了;
12、 把mysql添加到環境變量:
vi /etc/profile
在文件中增加
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin
讓修改生效
source /etc/profile
13、這時再使用mysql命令行連接時又報錯:Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
查看my.cnf,發現配置了socket=/var/lib/mysql/mysql.sock,於是執行下面的命令創建一個軟連接后解決:
ln -s /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock