centos7 下安裝mysql.rpm

一、安裝新版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  //禁用開機啓動

成功。。。。。。。。。。。。。。。

相關文章
相關標籤/搜索