走了6遍的流程。。。沒啥問題了
注:這篇流程裏面記錄了之前走過的各種坑,同時也附上了解決方案,雖然可以直接給出正常流程,但是我個人覺得貼出的這些坑以及解決方案還是有作用的,算是筆記。有全流程詳解,其實很快就能安裝好的(約半個小時)。
1、下載
mysql各版本下載地址: http://ftp.ntu.edu.tw/MySQL/Downloads/
我這裏選擇5.5.47,通用版,linux下64位。
2、解壓
#將安裝包放到/usr/local目錄下,解壓
[root@iz8vb5o19rg1twsj651szwz local]# tar -zxvf mysql-5.5.47-linux2.6-i686.tar.gz
#修改解壓目錄名稱爲mysql
3、添加用戶組和用戶
#添加用戶組
[root@iz8vb5o19rg1twsj651szwz local]# groupadd mysql
#添加用戶mysql 到用戶組mysql
[root@iz8vb5o19rg1twsj651szwz local]# useradd -g mysql mysql
4、安裝
#設置權限
[root@iz8vb5o19rg1twsj651szwz local]# chown -R mysql .
[root@iz8vb5o19rg1twsj651szwz local]# chgrp -R mysql .
[root@iz8vb5o19rg1twsj651szwz local]# yum install libaio
#執行安裝腳本:
[root@iz8vb5o19rg1twsj651szwz local]# cd mysql
[root@iz8vb5o19rg1twsj651szwz mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data
#注意,在執行這一步時可能會遇到如下報錯:
#(1)
報錯:在64系統裏執行32位程序如果出現/lib/ld-linux.so.2:
bad ELF interpreter: No such file or directory.......
解決方法:安裝glic
執行命令:sudo yum install glibc.i686
#(2)再次執行剛纔的安裝命令
報錯:
解決方法:安裝libgcc
執行命令:yum install libgcc libgcc.i686
#(3)再再次執行剛纔的安裝命令
報錯:
解決方法:安裝 libaio.so.1
執行命令:yum install -y libaio.so.1
執行後出現下圖內容,則初始化成功!
成功後接着執行下面命令:
[root@iz8vb5o19rg1twsj651szwz mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@iz8vb5o19rg1twsj651szwz mysql]# chmod 755 /etc/init.d/mysqld
#注意:5.6之前的版本是此操作
[root@iz8vb5o19rg1twsj651szwz mysql]# cp support-files/my-medium.cnf /etc/my.cnf
# 5.6之後的版本執行以下操作
[root@iz8vb5o19rg1twsj651szwz mysql]# cp support-files/my-default.cnf /etc/my.cnf
#修改啓動腳本
[root@iz8vb5o19rg1twsj651szwz mysql]# vi /etc/init.d/mysqld
#修改項:
basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data/mysql
#啓動服務
[root@iz8vb5o19rg1twsj651szwz mysql]# service mysqld start
可能會報如下錯誤:
解決方法:編輯/etc/my.cnf文件
[root@iz8vb5o19rg1twsj651szwz mysql]# vim /etc/my.cnf
#添加內容:
[mysqld]
datadir = /usr/local/mysql/data
#如果想開啓mysql的日誌機制,可在/usr/local/mysql目錄下創建一個文件夾,命名爲log,
#然後在該目錄下手動創建一個文件:mysql.log
#再在[mysqld]模塊中添加如下內容:
log=/usr/local/mysql/log/mysql.log
long_query_time=2
log-slow-queries= /usr/local/mysql/log/slowquery.log
log_error=/usr/local/mysql/log/mysql.log
如圖:
文件保存後,再次啓動,服務開啓成功
5、登錄測試
#接着再進行以下操作
[root@iz8vb5o19rg1twsj651szwz ~]# yum install ncurses ncurses-devel
[root@iz8vb5o19rg1twsj651szwz ~]# yum install libncurses.so.5
[root@iz8vb5o19rg1twsj651szwz ~]# /usr/local/mysql/bin/mysql -V
#登錄測試
[root@iz8vb5o19rg1twsj651szwz ~]# /usr/local/mysql/bin/mysql
#也可用以下方式登錄
[root@iz8vb5o19rg1twsj651szwz local]# ./mysql/bin/mysql -uroot
6、重置用戶密碼
#剛安裝好的MySQL,默認是沒有密碼的,所以在上面的登錄測試時,直接可以進入mysql模式
#下面我們給用戶設置密碼(假設設置密碼爲"test"):
mysql> use mysql;
mysql> update user set password=passworD("test") where user='root';
mysql> flush privileges;
#查看用戶表密碼是否已更改
mysql> select user,host,password from mysql.user;
mysql> exit;
7、使用新密碼登錄
設置密碼後,再次用 ./mysql/bin/mysql -uroot 登錄,則會報錯:
改用 mysql -uroot -p 登錄:
解決方法:安裝mysql命令行
執行命令: yum install mysql
安裝命令行後,再次登錄(可在任意位置進行登錄操作),顯示需要輸入密碼,
這時候輸入剛纔設置的密碼,即可登錄成功!
8、開啓mysql的遠程訪問權限
#(1)授權
#方法一(test:密碼):
mysql> use mysql;
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "test";
mysql> flush privileges;
#方法二:
mysql> use mysql;
mysql> update user set host = '%' where user = 'root';
mysql> select host, user from user;
mysql> flush privileges;
#(2)然後,開放防火牆端口:
#打開防火牆配置文件
[root@iz8vb5o19rg1twsj651szwz ~]# vi /etc/sysconfig/iptables
執行以上命令發現沒有iptables文件,那是因爲
操作系統默認使用的是firewall作爲防火牆,把它停掉裝個iptables:
[root@iZ94byqpectZ ~]# systemctl stop firewalld
[root@iZ94byqpectZ ~]# systemctl mask firewalld
[root@iZ94byqpectZ ~]# yum install -y iptables
[root@iZ94byqpectZ ~]# yum install iptables-services
然後/etc/sysconfig目錄下就有了iptables文件,我們就可以做配置了:
#打開文件
[root@iZ94byqpectZ ~]# vi /etc/sysconfig/iptables
#增加下面一行
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
上個圖以供參考 ~
#重啓防火牆
[root@iZ94byqpectZ ~]# service iptables restart
#注意:增加的開放3306端口的語句一定要在icmp-host-prohibited之前
#(3)如果是雲服務器,則確保阿里雲實例裏開放了3306端口
相關命令:
service mysqld restart #重啓mysql
service mysqld start #啓動mysql
service mysqld stop #關閉mysql
service mysqld status #查看運行狀態
顯示如下內容,則重啓mysql服務成功
到此,MySQL安裝完成!