1.檢測是否已經安裝了mysql
rpm -qa | grep mysql
如果安裝了就將其卸載,命令:rpm -e --nodeps 軟件名
比如:rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64
2.下載mysql 下載地址:https://dev.mysql.com/downloads/mysql/
或
https://dev.mysql.com/downloads/mysql/5.7.html#downloads
3.准備工作
mkdir /usr/local/mysql
mv mysql-5.7.23-1.el6.x86_64.rpm-bundle.tar /usr/local/mysql
cd /usr/local/mysql/
4解壓:tar -xvf mysql-5.7.23-1.el6.x86_64.rpm-bundle.tar
5.開始安裝
rpm -ivh mysql-community-server-5.7.23-1.el6.x86_64.rpm
一般會報缺少依賴,需要我們安裝,把下面這些卻的都安裝上,命令:yum -y install 依賴包 比如:yum -y install libaio.so.1
如果過程出現如下所示,表示需要升級依賴 ,命令:yum update 名稱 ,比如:yum update libstdc++-4.4.7-4.el6.x86_64
如果還出現別的情況,請百度
6.正式開始安裝了
運行命令 rpm -ivh mysql-community-server-5.7.23-1.el6.x86_64.rpm,如下圖說明需要先安裝這幾部分才能安裝mysql-community-server-5.7.23-1.el6.x86_64.rpm,跟着提示安裝即可
運行命令如下:
rpm -ivh mysql-community-common-5.7.23-1.el6.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.23-1.el6.x86_64.rpm
rpm -ivh mysql-community-client-5.7.23-1.el6.x86_64.rpm
rpm -ivh mysql-community-server-5.7.23-1.el6.x86_64.rpm
7.安裝后查詢MySQL服務狀態 命令:service mysqld status,如下圖:
輸入命令:service mysqld start 啟動mysql,如下圖,另外常用的還有,service mysqld restart用來重啟mysql,service mysqld stop用來停止mysql
8.查看MySQL第一次按時生成的隨機密碼:
查看日志:cat /var/log/mysqld.log,找到密碼
9.登錄:
用該零時密碼登陸必須要馬上修改的,不然會報錯,如下:
修改密碼:SET PASSWORD = PASSWORD('123456'); 密碼不符合規則也報錯,但是我就想使用123456,怎么辦?
修改密碼校驗規則,輸入下面兩行命令
set global validate_password_policy=0;
set global validate_password_length=1;
然后修改密碼:SET PASSWORD = PASSWORD('123456');
10.設置系統啟動時自動啟動mysql
加入到系統服務:chkconfig --add mysqld
自動啟動:chkconfig mysqld on
查詢列表:chkconfig
說明:都沒關閉(off)時是沒有自動啟動。
11.然后本機用SQLyog來連接阿里雲的我們安裝的MySQL,navicat也一樣的
會發現連接失敗
12. 打開阿里雲控制台做如下設置,然后連接,不行就重啟下
大功告成了!
問題:mysql只能本地登陸,無法遠程登陸
解決:
在本地登陸MySQL服務后
show databases; 查看數據庫並進入mysql數據庫 use mysql;
然后查看用戶表 select Host, User from user;
輸出如下,這幾個用戶都只能本地登陸
mysql> select Host, User from user;
+-----------+---------------+
| Host | User |
+-----------+---------------+
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
+-----------+---------------+
3 rows in set (0.00 sec)
然后修改表數據
update user set Host='%' where User='root';
然后刷新
flush privileges;
完工就可以使用root用戶遠程登陸了
如果上面的還是無法遠程登陸,可以試試如下的操作,當我覺得阿里雲控制台做的就時設置防火牆的問題,這里記錄下,以防萬一:
1.登錄mysql:
mysql -uroot –p123456
2.設置遠程訪問(使用root密碼):
grant all privileges on *.* to 'root' @'%' identified by '123456';
flush privileges;
3.防火牆打開3306端口
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
/etc/rc.d/init.d/iptables save
/etc/init.d/iptables status
navicate 執行語句時可能會報如下錯誤
1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
修改 my.cnf 文件的 sql_mode
獲取 sql_mode字段內容: SELECT @@sql_mode;
去掉 sql_mode字段中的 only_full_group_by
獲得最終要添加的字段
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
在 my.cnf中添加該字段
查找 my.cnf 文件: find / -name my.cnf 或者 whereis my.cnf
編輯 my.cnf: vim /etc/my.cnf 將上一步驟的 sql_mode 字段內容添加至 my.cnf
保存,重啟: service mysqld restart