環境:阿里雲ECS服務器,系統爲centos7.2node
用戶:rootmysql
參考博客:https://blog.csdn.net/kunzai6/article/details/81938613 師兄的哈哈哈,還講了很詳細的新建用戶和權限設置sql
https://blog.csdn.net/qq_39005790/article/details/80017186數據庫
刪除原來的數據庫:centos
centos7中默認安裝了數據庫MariaDB,若是直接安裝MySQL的話,會直接覆蓋掉這個數據庫,固然也能夠手動刪除一下:安全
[root@localhost ~]# rpm -qa|grep mariadb // 查詢出來已安裝的mariadb [root@localhost ~]# rpm -e --nodeps 文件名 // 卸載mariadb,文件名爲上述命令查詢出來的文件
而後如今開始將當前目錄切換到root也就是: cd ~服務器
下載與安裝MySQL:網絡
這裏採用Yum管理好了各類rpm包的依賴,可以從指定的服務器自動下載RPM包而且安裝,因此在安裝完成後必需要卸掉,不然會自動更新。tcp
1.安裝MySQL官方的yum repositoryide
[root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
2.下載rpm包
[root@localhost ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm
3.安裝MySQL服務
[root@localhost ~]# yum -y install mysql-community-server
最後會出現個complete!
4.啓動MySQL服務
[root@localhost ~]# systemctl start mysqld.service
看到相似下面的界面,或者以Starting MySqL server.. started MysqlServer..結尾的就成功啓動了
還有幾個關於MySQL經常使用的命令:
重啓:systemctl restart mysqld.service
中止:systemctl stop mysqld.service
查看狀態:systemctl status mysqld.service
還能夠配置MySQL的開機啓動:
[root@woitumi-128 ~]# systemctl enable mysqld [root@woitumi-128 ~]# systemctl daemon-reload 剛剛配置的服務須要讓systemctl能識別,就必須刷新配置
關於登陸MySQL:
登陸命令:
[root@localhost ~]# mysql -u root -p
意思就是用root用戶登陸,而後準備輸入密碼。
第一次啓動MySQL後,就會有臨時密碼,這個默認的初始密碼在/var/log/mysqld.log文件中,咱們能夠用這個命令來查看:
grep "password" /var/log/mysqld.log
但是不知道是我輸錯密碼仍是不能複製粘貼,一直顯示錯誤:
(好吧後面看看這個代碼應該是 mysql -u root -p纔對,可能這樣輸入命令就不會有錯吧……)
而後咱們還能夠先跳過密碼驗證登陸進MySQL:
中止服務:
systemctl stop mysqld.service
修改mMySQL的配置文件:
vi /etc/my.cnf
在最後加上配置:
skip-grant-tables
而後再啓動服務:
systemctl start mysqld.service
而後這時就能夠跳過密碼來登陸mysql:
mysql -u root
而後是修改下密碼:(就看別人的例子是這樣的)
mysql> use mysql; Database changed mysql> update mysql.user set authentication_string=password('4008') where user='root' ; Query OK, 1 row affected, 1 warning (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 1
而後exit退出mysql,從新在剛剛那個配置文件中去掉skip-grant-tables,而後重啓MySQL。
而後就能夠用新密碼登陸了:
sql報錯
但這個時候,我試了一下一個簡單的sql語句:
what???我不是剛剛纔設完密碼嗎??
而後百度了下。說這個狀況還要加個這樣的改密碼的語句:
SET PASSWORD = PASSWORD('密碼');
但這個命令又出現了這樣的問題:
額百度後知道原來是密碼等級太簡單,若是你堅持要這樣的密碼,要改變密碼等級:
登陸數據庫後,輸入
mysql> set global validate_password_policy=0; //改變密碼等級 mysql> set global validate_password_length=4; //改變密碼最小長度
而後再輸入剛剛的命令:
SET PASSWORD = PASSWORD('密碼');
而後再用 show databases;就沒有報錯了
配置遠程登陸:
MySQL默認root用戶只能本地登陸,若是要遠程鏈接,要簡單設置下,這裏直接用root來遠程登陸不添加其餘角色。
使用命令:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '4008' WITH GRANT OPTION;
.*.的意思是全部庫的全部表;To後面跟的是用戶名;@後面跟的是ip地址,%表明全部ip地址,identified by後面的是密碼。
而後再:
mysql> flush privileges;
注意:
須要注意mysql的配置文件中的bindaddress 的參數和skip-networking 配置
bindaddress : 設定哪些ip地址被配置,使得mysql服務器只回應哪些ip地址的請求),最好註釋掉該參數或設置成爲127.0.0.1之外的值
skip-networking : 若是設置了該參數項,將致使全部TCP/IP端口沒有被監聽,也就是說出了本機,其餘客戶端都沒法用網絡鏈接到本mysql服務器,因此應該註釋掉該參數
添加3306端口:
命令:
firewall-cmd --zone=public --add-port=3306/tcp --permanent;
結果說沒有運行防火牆:
那就先開防火牆咯:
systemctl status firewalld 查看防火牆狀態
systemctl start firewalld 打開防火牆
而後再輸入那個開放3306端口的命令就好了
firewall-cmd --zone=public --add-port=3306/tcp --permanent; firewall-cmd --reload 重啓防火牆
最後的收尾:
1.咱們剛開始說要寫在yum的repository,用這個命令就行:
yum -y remove mysql57-community-release-el7-10.noarch
2.MySQL設一下utf8:
打開/etc/my.cnf也就是數據庫的配置文件,而後在底部複製粘貼:
[mysqld] character_set_server=utf8 init_connect='SET NAMES utf8'
採用navicat新建數據庫時,須要將編碼方式設置爲,字符集:utf8 -- UTF-8 Unicode ,排序規則:utf8_general_ci
3.阿里雲的服務器中的安全組加入mysql鏈接的規則。這個很重要否則遠程沒法鏈接上。
4.配置文件的說明:
/etc/my.cnf 這是mysql的主配置文件 /var/lib/mysql mysql數據庫的數據庫文件存放位置 /var/log mysql數據庫的日誌輸出存放位置