環境:Centos七、JDK1.8(已經安裝成功)、MySQL5.7
步驟:
1.卸載Mariadb
2.經過Wget下載mysql5.7
3.安裝&配置
經過官網下載Mysql5.7版本,而後移動到Centos系統上。也能夠經過wget命令下載。html
先查詢mariadb相關安裝包.卸載mariadb。mariadb是系統自帶的MySQL的妹妹數據庫。node
[root@localhost ~]# rpm -qa|grep marimysql [root@localhost ~]# rpm -e --nodeps mariadb-libslinux [root@localhost ~]# rpm -qa|grep marisql marisa-0.2.4-4.el7.x86_64數據庫 |
經過wget下載mysql5.7安裝包.咱們進入/opt,由於/opt存放咱們的安裝軟件,這是一個好習慣。服務器
若是是經過我分享的軟件包,就不須要執行這一步驟。可跳過這一步驟。掛載的問題在JDK中已經說明。網絡
#將mysql5.7安裝包下載到opt,也能夠選擇其它目錄。看我的選擇tcp [root@localhost ~]# cd /opt/ide
#查看當前路徑是不是opt [root@localhost opt]# pwd /opt
#查看當前目錄的文件狀況 [root@localhost opt]# ll 總用量 0 drwxr-xr-x. 2 root root 6 10月 31 2018 rh
#加-c表示斷點續傳 當文件特別大或者網絡特別慢的時候,每每一個文件尚未下載完,鏈接就已經被切斷,此時就須要斷點續傳。wget的斷點續傳是自動的,只須要使用-c參數 [root@localhost opt]# wget -c http://dev.mysql.com/get/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar |
(1).安裝Mysql5.7
#經過tar解壓, 只要後綴爲.tar,則使用-xvf,xvf是固定的格式 [root@localhost opt]# tar -xvf mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar
#經過rpm命令軟件包管理工具,安裝mysql依賴。必定要按順序執行,不然可能出現依賴的問題 [root@localhost opt]# rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm [root@localhost opt]# rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm [root@localhost opt]# rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm [root@localhost opt]# rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm [root@localhost opt]# rpm -ivh mysql-community-libs-compat-5.7.26-1.el7.x86_64.rpm
#查看mysql的rpm文件 [root@localhost opt]# ls
|
(2).啓動mysql5.7
#運行systemctl start mysqld.service,啓動mysql [root@localhost opt]# systemctl start mysqld.service
#查看mysql狀態 [root@localhost opt]# systemctl status mysqld.service |
(3).初始化mysql
#Mysql自動給root用戶設置隨機密碼,運行grep "password" /var/log/mysqld.log可看到當前密碼 [root@localhost opt]# grep "password" /var/log/mysqld.log 2020-11-19T12:09:39.357942Z 1 [Note] A temporary password is generated for root@localhost: uh=FR-wzg0A(
[root@localhost ~]# mysql -uroot -p Enter password: uh=FR-wzg0A(
#修改默認密碼 #默認的狀況下設置的密碼是有限制的,太簡單不能設置;經過設置能夠修改爲簡單密碼
#簡單密碼設置 #更改密碼策略爲LOW: mysql> set global validate_password_policy=0; Query OK, 0 rows affected (0.00 sec)
#更改密碼長度 mysql> set global validate_password_length=0; Query OK, 0 rows affected (0.00 sec)
#修改默認密碼 mysql> set password for 'root'@'localhost' = password('root123.'); Query OK, 0 rows affected, 1 warning (0.00 sec) |
(4).其它設置
[1].開啓開機自啓動mysql
#設置linux開機自啓動mysql;若是失敗了,可自行百度 [root@localhost opt]# systemctl enable mysqld.service
#查看是否自啓動成功;[' ']中若帶*則爲開機自啓動 [root@localhost ~]# ntsysv |
[2].端口設置
如需外網訪問須要開設端口等一些設置。
#向防火牆添加容許訪問的端口時,防火牆的狀態必須是開啓狀態 [root@localhost ~]# systemctl start firewalld.service #固定模式記住就行,只須要修改端口號便可。 [root@localhost ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent success [root@localhost ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent success
#重啓防火牆,修改防火牆後都要執行該操做 [root@localhost ~]# firewall-cmd --reload success # 命令含義:
# –zone #做用域 # –add-port=80/tcp #添加端口,格式爲:端口/通信協議 # –permanent #永久生效,沒有此參數重啓後失效 |
[3].mysql遠程設置
若想經過遠程訪問,或者經過本地的navicat、SQLyog,則必需要配置遠程訪問用戶。若是沒配置,訪問時會出現1001六、1130等問題。
#對系統數據庫的root帳戶設置遠程訪問的密碼,與本地的root訪問密碼並不衝突: mysql> grant all privileges on *.* to 'root'@'%' identified by 'root123.' with grant option; Query OK, 0 rows affected, 1 warning (0.00 sec) |
常見的MySQL錯誤:
問題1:鏈接MySQL的10060錯誤:Can't connect to MySQL server on '*.*.*.*'(10060)
解決方法:
網絡問題鏈接不通:設置鏈接網絡 服務未啓動:systemctl start mysqld.service 防火牆未關閉(不推薦,生產環境不能夠關閉):systemctl stop firewalld.service 服務器上防火牆端口未開放: firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload 權限不足:使用root登陸MySQL執行 grant all privileges on *.* to 'root'@'%' identified by 'root123.' with grant option;
問題2:ERROR 1130: Host '192.168.1.3' is not allowed to connect to thisMySQL serve
解決方法:
多是你的賬號不容許從遠程登錄,只能在localhost。這個時候只要在localhost的那臺電腦,登入mysql後,更改"mysql" 數據庫裏的 "user" 表裏的 "host"項,從"localhost"改稱"%"。
權限不足:使用root登陸MySQL執行 grant all privileges on *.* to 'root'@'%' identified by 'root123.' with grant option;
防火牆經常使用操做
firewall-cmd --reload #重啓
systemctl stop firewalld.service #中止
systemctl disable firewalld.service #禁止firewall開機啓動
firewall-cmd --state #查看默認防火牆狀態(關閉後顯示notrunning,開啓後顯示running) |