centos7 利用yum安裝mysql8.0


 

linux版本:centos7.6

mysq版本:8.0.15

--------------------------------------------------------------------

卸載mysql的命令:

yum remove mysql-community-server

 

安裝前的清理工作:

使用 rpm -qa | grep mysql命令查看,如果有查詢結果,則使用yum remove 名稱清理掉。

yum remove mysql-xxx-xxx-

刪除mysql的配置文件,卸載不會自動刪除配置文件,首先使用如下命令查找出所用的配置文件;

find / -name mysql

可能的顯示結果如下:

  1.  
    /etc/logrotate.d/mysql
  2.  
    /etc/selinux/targeted/active/modules/100/mysql
  3.  
    /etc/selinux/targeted/tmp/modules/100/mysql
  4.  
    /var/lib/mysql
  5.  
    /var/lib/mysql/mysql
  6.  
    /usr/bin/mysql
  7.  
    /usr/lib64/mysql
  8.  
    /usr/local/mysql

根據需求使用以下命令 依次 對配置文件進行刪除

rm -rf /var/lib/mysql



rpm -e --nodeps xxx

刪除MariaDB的文件

-- 使用rpm 命令查找出要刪除的mariadb文件
rpm -qa | grep mariadb -- 可能查出的文件
mariadb-libs-5.5.56-2.el7.x86_64 -- 刪除上面的程序
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

 

centos的yum 源中默認是沒有mysql的,所以我們需要先去官網下載mysql的repo源並安裝。

在MySQL官網中下載YUM源rpm安裝包:https://dev.mysql.com/downloads/repo/yum/  

 

 

也可以選擇執行命令下載YUM源rpm安裝包:

wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

 

安裝 yum repo文件;

rpm -ivh mysql80-community-release-el7-11.noarch.rpm

或

yum localinstall mysql80-community-release-el7-1.noarch.rpm

會在/etc/yum.repos.d/目錄下生成兩個repo文件mysql-community.repo mysql-community-source.repo

 

 更新yum源:

yum clean all
yum makecache

 

 查看mysql yum倉庫中mysql版本,使用如下命令:

yum repolist all | grep mysql

 

可以看到 MySQL 5.5 5.6 5.7為禁用狀態 而MySQL 8.0為啟用狀態;

如果您不想安裝mysql8.0的版本我們可以按下面操作去做,要是安裝的mysql8.0版本這步可以略過。

使用 yum-config-manager 命令修改相應的版本為啟用狀態最新版本為禁用狀態:

yum-config-manager --disable mysql80-community
 
yum-config-manager --enable mysql57-community

 

或者可以編輯 mysql repo文件,將相應版本下的enabled改成 1 即可:

cat /etc/yum.repos.d/mysql-community.repo 

 

 

 

 安裝mysql 命令:

yum install mysql-community-server

 

 開啟mysql服務:

systemctl start mysqld.service

 

設置開機自啟:

systemctl enable mysqld.service

-- 如果開機沒有啟動的話就使用下面這個命令吧,反正我是沒使用
systemctl daemon-reload

數據庫的服務操作:

#啟動mysql
systemctl start mysqld.service
 
#結束
systemctl stop mysqld.service
 
#重啟
systemctl restart mysqld.service
 
#開機自啟
systemctl enable mysqld.service

 

獲取初始密碼登錄mysql

mysql在安裝后會創建一個root@locahost賬戶,並且把初始的密碼放到了/var/log/mysqld.log文件中;

 

cat /var/log/mysqld.log | grep password

  

使用初始密碼登錄mysql

mysql -uroot -p

 

mysql8.0版本必須符合長度(默認是8位),且必須含有數字,小寫或大寫字母,特殊字符。因為實在我本地自己的庫,所以我修改了密碼最小長度和密碼的策略

mysql 8.0以上 新版本賬號密碼策略修改和密碼修改 

     老版本的密碼策略變量:

        validate_password_policy 這個參數用於控制validate_password的驗證策略 0-->low  1-->MEDIUM  2-->strong。

  validate_password_length密碼長度的最小值(這個值最小要是4)。

  validate_password_number_count 密碼中數字的最小個數。

  validate_password_mixed_case_count大小寫的最小個數。

  validate_password_special_char_count 特殊字符的最小個數。

  validate_password_dictionary_file 字典文件

 

       8.0后要注意密碼策略變量變化 

    validate_password.check_user_name ON 

    validate_password.dictionary_file 

    validate_password.length 

    validate_password.mixed_case_count 

    validate_password.number_count 

    validate_password.policy 

    validate_password.special_char_count 

  如:validate_password_policy 變為validate_password.policy.

  所以

  set global validate_password_policy=0;變為 set global validate_password.policy=0 ;

  密碼最小長度(4):

  set global validate_password_length=6; 變為 set global validate_password.length=4

 


 

 修改root的密碼:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

 

遠程設置:

#遠程設置
mysql> use mysql;
mysql> update user set host='%' where user='root';
#授權用戶名的權限,賦予任何主機訪問數據的權限
#本人沒有執行這步 mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

 

開放3306端口:

-- 查看已經開放的端口
firewall-cmd --list-ports  

-- 開啟端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent  

命令含義: 

  –zone #作用域 

  –add-port=80/tcp #添加端口,格式為:端口/通訊協議 

  –permanent #永久生效,沒有此參數重啟后失效

 重啟防火牆:

#重啟firewall  
firewall-cmd --reload  
#停止firewall  
systemctl stop firewalld.service  
#禁止firewall開機啟動  
systemctl disable firewalld.service

 

 端口開放后就可以進行數據庫連接操作了,在使用Navicat連接 Mysql 8.0.15可能會出現問題 Client does not support authentication protocol 錯誤解決方法:

#修改加密規則 
ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; 
#更新一下用戶的密碼 
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password'; 
#刷新權限
FLUSH PRIVILEGES;

 

mysql的其他操作:

  查看數據庫編碼:

show variables like 'character%';



SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%'

 

 

查看單個數據庫的編碼設置

#方法一:
select * from information_schema.schemata where schema_name="test_character";

#方法二:
show crate database test_character;

 

查看單個表的編碼設置

show crate table test_character.test;

 

如果編碼不統一,很容易出現中文亂碼,下面介紹在多個層面上修改編碼設置

創建數據庫時直接指定編碼

create database <數據庫名> character set utf8;

 

修改數據庫的編碼

alter database <數據庫名> character set utf8;

 

創建表時指定編碼

create table <表名> (
id int(10),
name varchar(20)
)default charset=utf8;

 

修改表的編碼

alter table <表名> character set utf8;

 

數據庫中下面的幾個變量必須是uft8或是utf8mb4:

character_set_client  (客戶端來源數據使用的字符集)
character_set_connection     (連接層字符集)
character_set_database   (當前選中數據庫的默認字符集)
character_set_results (查詢結果字符集)
character_set_server (默認的內部操作字符集)

 

數據庫連接參數中:

characterEncoding=utf8會被自動識別為utf8mb4,也可以不加這個參數,會自動檢測。

而autoReconnect=true是必須加上的。

部分參數配置查詢命令:

#查詢mysql最大連接數設置

show global variables like 'max_conn%';

SELECT @@MAX_CONNECTIONS AS 'Max Connections';

 

# 查看最大鏈接數

show global status like 'Max_used_connections';

 

# 查看慢查詢日志是否開啟以及日志位置

show variables like 'slow_query%';

 

# 查看慢查詢日志超時記錄時間

show variables like 'long_query_time';

 

# 查看鏈接創建以及現在正在鏈接數

show status like 'Threads%';

 

# 查看數據庫當前鏈接

show processlist;

 

# 查看數據庫配置

show variables like '%quer%';

 

查看mysql版本:

select version();

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM