Centos 7 MYSQL5.7 安裝與卸載

                           Centos 7 MYSQL5.7 安裝與卸載

一、卸載已安裝的MySql

1.1 rpm查看安裝

rpm -qa | grep -i mysql

1.2 rpm 卸載

清除上述查找出來的MySQL

rpm -e mysql57-community-release-el7-9.noarch
rpm -e mysql-community-server-5.7.17-1.el7.x86_64
rpm -e mysql-community-libs-5.7.17-1.el7.x86_64
rpm -e mysql-community-libs-compat-5.7.17-1.el7.x86_64
rpm -e mysql-community-common-5.7.17-1.el7.x86_64
rpm -e mysql-community-client-5.7.17-1.el7.x86_64
cd /var/lib/  
rm -rf mysql/

1.3 清除餘項

刪除mysql的所有配置
rm –rf /usr/my.cnf
rm -rf /root/.mysql_sercret
 
剩餘配置檢查
chkconfig --list | grep -i mysql
chkconfig --del mysqld
根據上面的列表,刪除 ,如:mysqld

二、安裝MySql

2.1 下載yum源

現在centos上默認是沒有yum源的,yum安裝的是 MariaDB,所以我們需要自己先配置yum源。 

wget 'https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm'

 

2.2 安裝yum源

rpm -Uvh mysql57-community-release-el7-11.noarch.rpm

  

2.3 安裝MySql

yum install -y mysql-community-server

  

2.4 啓動mysql

mysql 基礎配置說明(vim /etc/my.cnf)

character-set-server=utf8

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

# 設置時區爲東八區
default-time_zone = +8:00
# 密碼策略
validate_password_policy=0
validate_password_length=1

# 不區分大小寫
lower_case_table_names=1

# 慢查詢
slow_query_log=on
long_query_time=3
slow_query_log_file=/var/lib/mysql/VM_0_12_centos-slow.log
log_queries_not_using_indexes=on

# 緩存
query_cache_type=on
query_cache_size=102400

在centos7中,沒有了service命令,都是使用systemctl命令。

systemctl start mysqld

查看狀態

systemctl status mysqld

  

2.5 登錄數據庫,修改數據庫密碼

mysql5.7的新特性之一就是在初始化的時候會生成一個自定義的密碼,然後你需要找到這個密碼,登錄的時候輸入。注意,輸入密碼的時候是不顯示。

倘若沒有/var/log/mysqld.log,可以先刪除原來安裝過的mysql殘留的數據
rm -rf /var/lib/mysql
再啓動mysql
systemctl start mysqld #啓動MySQL

找到密碼: 紅框的地方就是密碼:

grep 'temporary password' /var/log/mysqld.log

  

登錄數據庫:這裏-p之後不用輸入密碼,回車後再輸入。改過密碼之後登錄則是直接在-p後加密碼了。

注意,修改的密碼太簡單會不給修改,把大小寫字母和數字加上就肯定可以了。如果不想設置那麼複雜密碼,可以修改規則:

mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;

修改密碼:

SET PASSWORD = PASSWORD('123456');

設置遠程可以登錄(建議root不要授權遠程訪問,請創建新mysql用戶)

現在這樣是無法在本地用工具登錄訪問的,現在要做兩件事,一件事是將雲服務器上的3306端口開放;另一件事是配置遠程可以訪問。

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
flush privileges;

先設置剛纔的密碼可以遠程登錄,然後使用flush命令使配置立即生效,如果還不行可以嘗試重啓一下數據庫。

其他方案:

#vim /etc/my.cnf(注:windows下修改的是my.ini)

在文檔內搜索mysqld定位到[mysqld]文本段,在[mysqld]後面任意一行添加“skip-grant-tables”用來跳過密碼驗證的過程(修改完成後將此行註釋掉)。

2.6 修改一些簡單的配置

yum安裝的MySql配置文件默認在/etc文件夾下:

vim /etc/my.cnf

在[mysqld]下面添加,不需要分號
字符集:注意是utf8而不是utf-8!

character-set-server=utf8

這時候使用show variables like 'char%';就可以查看到字符集都是utf8了
sql支持group by語句

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

設置時區爲東八區

default-time_zone = '+8:00'

最後重啓數據庫,使配置生效。

systemctl restart mysqld

其他配置


# 不區分大小寫
lower_case_table_names=1

#慢查詢
slow_query_log=on
long_query_time=3
slow_query_log_file=/var/lib/mysql/VM_0_12_centos-slow.log
log_queries_not_using_indexes=on

# 緩存
query_cache_type=on
query_cache_size=102400

慢查詢基本配置

  1. slow_query_log 啓動停止技術慢查詢日誌
  2. slow_query_log_file 指定慢查詢日誌得存儲路徑及文件(默認和數據文件放一起)
  3. long_query_time 指定記錄慢查詢日誌SQL執行時間得伐值(單位:秒,默認10秒)
  4. log_queries_not_using_indexes  是否記錄未使用索引的SQL
  5. log_output 日誌存放的地方【TABLE】【FILE】【FILE,TABLE】

慢查詢分析

        慢查詢的日誌記錄非常多,要從裏面找尋一條查詢慢的日誌並不是很容易的事情,一般來說都需要一些工具輔助才能快速定位到需要優化的SQL語句,下面介紹兩個慢查詢輔助工具

Mysqldumpslow(pt_query_digest)

常用的慢查詢日誌分析工具,彙總除查詢條件外其他完全相同的SQL,並將分析結果按照參數中所指定的順序輸出。

語法:

mysqldumpslow -s r -t 10 slow-mysql.log

-s order (c,t,l,r,at,al,ar)

         c:總次數

         t:總時間

         l:鎖的時間

         r:總數據行

         at,al,ar  :t,l,r平均數  【例如:at = 總時間/總次數】

  -t  top   指定取前面幾天作爲結果輸出

mysqldumpslow -s r -t 10 /var/lib/mysql/VM_0_12_centos-slow.log

 

用戶權限

創建一個普通用戶並授權
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
授權: grant all on *.* to oyc@'%' identified by '123456';

上面,all表示所有的權限(如讀、寫、查詢、刪除等操作);
.有兩個*,前面的*表示所有的數據庫,後面的*表示所有的表;

identified by後面跟密碼,用單引號括起來,這裏user1指的是localhost上的user1。
給網絡上其他機器上的某用戶授權:
grant all on oyc1.* to 'oyc1'@'192.168.33.128' identified by '111222';
上面,用戶和主機的IP都用單引號括起來,兩者之間有@符號,IP可以用%代替,表示所有主機。

查看 MySQL 用戶權限

    查看當前用戶(自己)權限:
    show grants;
    查看其他 MySQL 用戶權限:
    show grants for oyc@localhost;

撤銷已經賦予給 MySQL 用戶權限的權限。

revoke 跟 grant 的語法差不多,只需要把關鍵字 “to” 換成 “from” 即可:
grant all ON oyc1.* to 'oyc1'@'%';
revoke all on oyc1.* from 'oyc1'@'%';

Mysql安裝位置

 character_sets_dir :  /usr/share/mysql/charsets/

2.7 設置開機啓動

systemctl enable mysqld
systemctl daemon-reload

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章