一、安裝新版mysql以前,咱們須要將系統自帶的mariadb-lib卸載node
[root@5201351 ~]# rpm -qa|grep mariadb mariadb-libs-5.5.41-2.el7_0.x86_64 [root@5201351 ~]# rpm -e mariadb-libs-5.5.41-2.el7_0.x86_64 --nodeps
二、到mysql的官網下載最新版mysql的rpm集合包:mysql-5.7.9-1.el7.x86_64.rpm-bundle.tarmysql
三、上傳mysql-5.7.9-1.el7.x86_64.rpm-bundle.tar到linux服務器,並解壓tar包linux
四、其中最簡單的安裝mysql-server服務,只須要安裝以下4個軟件包便可,咱們能夠使用rpm -ivh命令進行安裝,(注意安裝順序,若是不卸載mariadb-lib,此時安裝會報錯。)sql
rpm -ivh mysql-community-common-5.7.9-1.el7.x86_64.rpm rpm -ivh mysql-community-libs-5.7.9-1.el7.x86_64.rpm --(依賴於common) rpm -ivh mysql-community-client-5.7.9-1.el7.x86_64.rpm --(依賴於libs) rpm -ivh mysql-community-server-5.7.9-1.el7.x86_64.rpm --(依賴於client、common)
五、接下來是初始化數據庫,咱們使用以下幾條命令都可,效果都是同樣的數據庫
[root@5201351 ~]# mysql_install_db --datadir=/var/lib/mysql //必須指定datadir,執行後會生成~/.mysql_secret密碼文件 [root@5201351 ~]# //mysqld --initialize //新版的推薦此方法,執行生會在/var/log/mysqld.log生成隨機密碼
mysql在進行初始化的時後,會檢測數據目錄是否存在,
如過不存在,mysql會建立它,
若是存在,並且這個目錄裏有數據,mysql會報錯,而且終止初始化:服務器Initializing MySQL database: 2017-06-26T02:33:40.212541Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2017-06-26T02:33:40.215791Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting. 2017-06-26T02:33:40.215877Z 0 [ERROR] Abortingtcp
將這個數據目錄刪掉,或者重命名,若是數據比較重要,建議重命名,後期再從新導入就ok了
我用的rpm包安裝,默認數據目錄在
/var/lib/mysql/ide我將它直接刪掉spa
rm -fr /var/lib/mysql
六、更改mysql數據庫目錄的所屬用戶及其所屬組,而後啓動mysql數據庫,rest
(若是mysql沒有指定用戶組, "Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.")
[root@5201351 ~]# chown mysql:mysql /var/lib/mysql -R [root@5201351 ~]# systemctl start mysqld.service //啓動mysql數據庫服務
七、根據第5步中的密碼登陸到mysql,更改root用戶的密碼,新版的mysql在第一次登陸後更改密碼前是不能執行任何命令的
[root@5201351 ~]# mysql -uroot -p'j#uRig4yJ' mysql> set password=password('123456');
八、最後咱們還能夠根據實際狀況建立用戶,及做權限分配
mysql> create user 'root'@'192.168.100.2' identified by 'QQ5201351'; mysql> GRANT ALL PRIVILEGES ON dbname.* to 'root'@'192.168.100.2'; mysql> flush privileges
9.mysql 遠程訪問權限。
mysql> USE mysql; -- 切換到 mysql DB
mysql> SELECT User, Host FROM user; -- 查看現有用戶,密碼及容許鏈接的主機 (注:mysql7 沒有password字段)
//1,受權方式,容許ROOT用戶在任意IP鏈接數據庫。 mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.100' IDENTIFIED BY '' WITH GRANT OPTION;
//2,更改數據庫,固然咱們也能夠直接用 UPDATE 更新 root 用戶 Host, 但不推薦, SQL以下: UPDATE user SET Host='%' WHERE User='root' AND Host='localhost' LIMIT 1;
10,配置 防火牆
使用命令的方式配置CentOS7防火牆 ##Add firewall-cmd --permanent --zone=public --add-port=3306/tcp ##Remove firewall-cmd --permanent --zone=public --remove-port=3306/tcp ##Reload firewall-cmd --reload 檢查是否生效 firewall-cmd --zone=public --query-port=33060/tcp 列出全部的開放端口 firewall-cmd --list-all 查看防火牆狀態 systemctl status firewalld.service 啓動防火牆 systemctl start firewalld.service 關閉防火牆 systemctl stop firewalld.service 從新啓動防火牆 systemctl restart firewalld.service
11.配置開機自動啓動。
systemctl enable mysqld.service //設置開機自動啓動 systemctl status mysqld.service //查看狀態
systemctl disable mysqld.servic //禁用開機啓動
成功。。。。。。。。。。。。。。。