1. 程式人生 > >linux安裝mysql5.7及配置

linux安裝mysql5.7及配置

目錄

1.需求介紹

  這幾天老大又甩個功能,一個星期連做3個功能,確實累成狗,不過也學到新技能,現在回頭翻翻筆記,幾個鐘頭能配置完的東西,成長几何倍。因為要做資料庫的讀寫分離功能,所以先介紹下mysql的安裝配置,下篇文章mysql讀寫分離

2.mysql安裝

     我們先檢查本地是否安裝mysql

#  yum list installed | grep mysql        //檢查安裝
#  yum -y remove mysql-libs.x86_64        //解除安裝
//若有多個依賴檔案則依次解除安裝。當結果顯示為 Complete!即解除安裝完畢。

2.1依賴安裝

       MySQL依賴libaio,所以先要安裝libaio

#   yum search libaio    //檢索相關資訊 
#   yum install libaio     //安裝依賴包

// 成功安裝,提示如下:
已載入外掛:
fastestmirror Loading mirror speeds from cached hostfile 
* base: mirrors.yun-idc.com 
* extras: mirrors.163.com 
* updates: mirrors.163.com 
軟體包 libaio-0.3.109-12.el7.x86_64 已安裝並且是最新版本

2.2新增mysql yum respository      

#  wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
# yum localinstall mysql-community-release-el7-5.noarch.rpm 

//     驗證是否新增成功
# yum repolist enabled | grep "mysql.*-community.*"  

//     內容如下
mysql-connectors-community/x86_64 MySQL Connectors Community 1 
mysql-tools-community/x86_64 MySQL Tools Community 1 
mysql56-community/x86_64 MySQL 5.6 Community Server 13

2.3選擇要啟用的mysql版本

#  yum repolist all | grep mysql          //檢視mysql版本,執行   

//可以看到 5.5, 5.7 版本是預設禁用的,因為現在最新的穩定版是 5.6
mysql-connectors-community/x86_64      MySQL Connectors Community         啟用: 14
mysql-connectors-community-source      MySQL Connectors Community - Sourc 禁用
mysql-tools-community/x86_64           MySQL Tools Community              啟用: 17
mysql-tools-community-source           MySQL Tools Community - Source     禁用
mysql55-community/x86_64               MySQL 5.5 Community Server         禁用
mysql55-community-source               MySQL 5.5 Community Server - Sourc 禁用
mysql56-community/x86_64               MySQL 5.6 Community Server         啟用: 139
mysql56-community-source               MySQL 5.6 Community Server - Sourc 禁用
mysql57-community-dmr/x86_64           MySQL 5.7 Community Server Develop 禁用
mysql57-community-dmr-source           MySQL 5.7 Community Server Develop 禁用


//可以通過類似下面的語句來啟動某些版本
 # yum-config-manager --disable mysql56-community yum-config-manager --enable mysql57-community-dmr
//或者通過修改 /etc/yum.repos.d/mysql-community.repo 檔案
#  /etc/yum.repos.d/mysql-community.repo 檔案

//內容如下
# Enable to use MySQL 5.6
[mysql56-community]
name=MySQL 5.6 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

//其中 enabled=0 是指禁用,enabled=1 指啟用。

//執行,檢視當前的啟動的 MySQL 版本
#  yum repolist enabled | grep mysql

    注意: 任何時候,只能啟用一個版本。

2.4 通過Yum安裝mysql

#  yum install mysql-community-server 

//Yum 會自動處理 MySQL 與其他元件的依賴關係,顯示內容如下:
已載入外掛:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.yun-idc.com
* extras: mirrors.163.com
* updates: mirrors.163.com
正在解決依賴關係
--> 正在檢查事務
---> 軟體包 mysql-community-server.x86_64.0.5.6.24-3.el7 將被 安裝
...... ......

//中途遇到提示,按照提示安裝   
//執行 
# rpm -qi mysql-community-server.x86_64 0:5.6.24-3.el7
# whereis mysql     //可以看到mysql的安裝目錄是/usr/bin

2.5防火牆啟動關閉命令

#  systemctl start mysqld    //開啟 MySQL Server

#  systemctl status mysqld  //檢視 MySQL Server 狀態

#  systemctl stop mysqld    //關閉 MySQL Server

2.6測試是否安裝成功

# mysql    //進入mysql命令列介面

3.遠端連線mysql,開啟防火牆埠

//開啟 iptables 的配置檔案: 
# vim /etc/sysconfig/iptables 
//如果該 iptables 配置檔案 不存在,先執行
#  yum install iptables-services   //安裝。

//iptables檔案中新增以下內容
firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --permanent --zone=public --add-port=3306/udp

//執行
#  firewall-cmd --reload     //重啟防火牆,使最新的防火牆設定規則生效。

//mysql安全設定,伺服器啟動後,可以執行 
# mysql_secure_installation;

4.mysql其他問題 

4.1mysql賬號設定

//建立一個普通使用者 user ,密碼是 user
mysql> CREATE USER 'user'@'%' IDENTIFIED BY 'user';    

//給這個使用者授予 SELECT,INSERT,UPDATE,DELETE 的遠端訪問的許可權,這個賬號一般用於提供給實施的系統訪問
mysql> GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'user'@'%'; 

//建立一個管理員使用者 admin 賬號 ,密碼是 some_pass
mysql> CREATE USER 'admin'@'%' IDENTIFIED BY 'admin';

//給這個使用者授予所有的遠端訪問的許可權。這個使用者主要用於管理整個資料庫、備份、還原等操作。
mysql> GRANT ALL ON *.* TO 'admin'@'%';

//使授權立刻生效
mysql> flush privileges;

4.2更改資料庫存放目錄

//home 目錄下建立 data 目錄
# mkdir /home/data

//把 MySQL 服務程序停掉
# systemctl stop mysqld
//或者
# mysqladmin -u root -p shutdown

//移動資料到資料存放目錄
// /var/lib/mysql 整個目錄移到 /home/data,執行
# mv /var/lib/mysql  /home/data


#vim /etc/my.cnf     //修改 /etc/my.cnf 檔案
//內容如下
[mysqld]
datadir=/home/data/mysql
socket=/home/data/mysql/mysql.sock


[mysql]
socket=/home/data/mysql/mysql.sock


#  chown -R mysql:mysql /home/data/mysql    //修改許可權

//重啟後,如果不能啟動 MySQL 服務,執行
#  vim /etc/sysconfig/selinux
    調整SELINUX=permissive
    儲存設定,執行 reboot 重啟生效

4.3開機啟動mysql設定

# systemctl is-enabled mysqld.service;echo $?

 
//如果是 enabled 則說明是開機自動,如果不是,執行
# chkconfig --levels 235 mysqld on

4.4設定mysql UTF-8編碼

# vim /etc/my.cnf

//修改內容如下
[mysqld]
character_set_server = utf8

[mysql]
default-character-set = utf8



//檢視當前 MySQL 字符集進入mysql
#mysql> SHOW VARIABLES LIKE 'character%';    

#mysql> SHOW VARIABLES LIKE 'character%';

+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                     |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

5修改MySQL密碼

可以直接登入的小夥伴,直接設定密碼即可

mysql>set password for 'root'@'localhost'=password('newpasswd');

 無法直接登入的小夥伴,參考一下步驟

//獲取MySQL的臨時密碼, 只有啟動過一次mysql才可以檢視臨時密碼
# grep 'temporary password' /var/log/mysqld.log


//登陸並修改密碼
# mysql -uroot -p

//修改密碼
# ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
//密碼設定太簡單出現以下的提示
ERROR 1819 (HY000): Your password …

//首先,修改validate_password_policy引數的值
mysql> set global validate_password_policy=0;
//再修改密碼的長度
mysql> set global validate_password_policy=0;
//再次執行修改密碼就可以了
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

//授權其他機器登陸
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
mysql> FLUSH  PRIVILEGES;

如有侵權,請聯絡小編。