Linux Centos7配置mysql8.0數據庫


本文轉至:672530440

在此感謝博主,撒花!!!

 

本文主要從以下幾個方面對自己在centos7 下安裝mysql8過程做如下總結:

  • CentOS7 安裝mysql8 步驟;
  • window下的Navicat 連接MySql8;
  • 涉及到的Linux命令

https://blog.csdn.net/managementandjava/article/details/80039650

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

第一部分 CentOS7安裝mysql

1.1 安裝前清理工作;

1.1.1 清理原有的mysql數據庫;

使用以下命令查找出安裝的mysql軟件包和依賴包:

rpm -pa | grep mysql

顯示結果如下:

  1.  
    mysql80-community-release-el7-1.noarch
  2.  
    mysql-community-server-8.0.11-1.el7.x86_64
  3.  
    mysql-community-common-8.0.11-1.el7.x86_64
  4.  
    mysql-community-libs-8.0.11-1.el7.x86_64
  5.  
    mysql-community-client-8.0.11-1.el7.x86_64

使用以下命令依次刪除上面的程序

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

1.1.2 刪除MariaDB的文件,

由於MySQL在CentOS7中收費了,所以已經不支持MySQL了,取而代之在CentOS7內部集成了mariadb,而安裝MySQL的話會和MariaDB的文件沖突,所以需要先卸載掉MariaDB.

使用rpm 命令查找出要刪除的mariadb文件;

rpm -pa | grep mariadb

可能的顯示結果如下:

mariadb-libs-5.5.56-2.el7.x86_64

刪除上面的程序

rpm -e mariadb-libs-5.5.56-2.el7.x86_64

可能出現錯誤提示如下:

  1.  
    依賴檢測失敗:
  2.  
     
  3.  
    libmysqlclient.so.18()(64bit) 被 (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要
  4.  
     
  5.  
    libmysqlclient.so.18(libmysqlclient_18)(64bit) 被 (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要
  6.  
     
  7.  
    libmysqlclient.so.18(libmysqlclient_18)(64bit) 被 (已安裝) postfix-2:2.10.1-6.el7.x86_64 需要

使用強制刪除:

rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

至此就將原來有的mysql 和mariadb數據庫刪除了;

 

1.2 安裝mysql

1.2.1 下面mysql官網提供的mysql repo源

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

mysql官網下載鏈接:mysql repo下載地址 如下:

1.2.2 使用putty的pscp將文件上傳到CentOS

使用putty將F:盤下剛下好的mysql repo文件上傳到Centos/usr/local/mysql文件夾下;

D:\Putty>pscp F:\mysql80-community-release-el7-1.noarch.rpm root@192.168.145.136:/usr/local/mysql/

1.2.3 安裝 yum repo文件並更新 yum 緩存;

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

如果出現版本沖突:1 . rpm -qa | grep -i mysql 2. sudo yum -y remove  mysql57-community-release-el7-9.noarch //刪除 5.7 版本

執行結果:

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

更新 yum 命令

  1.  
    yum clean all
  2.  
    yum makecache

1.2.4 使用 yum安裝mysql

當我們在使用yum安裝mysql時,yum默認會從yum倉庫中安裝mysql最新的GA版本;如何選擇自己的版本;

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

yum repolist all | grep mysql

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

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

  1.  
    yum-config-manager --disable mysql80-community
  2.  
    yum-config-manager --enable mysql57-community

或者可以編輯 mysql repo文件,

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

將相應版本下的enabled改成 1 即可;

1.2.5 安裝mysql 命令如下:

yum install mysql-community-server

1.2.6 開啟mysql 服務

systemctl start mysqld.service

1.2.7 獲取初始密碼登錄mysql

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

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

使用初始密碼登錄mysql

mysql -u root -p 

修改初始密碼:所以剛開始設置的密碼必須符合長度,且必須含有數字,小寫或大寫字母,特殊字符。

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

1.2.8 在防火牆中開啟3306端口

CentOS7默認使用的是firewall作為防火牆,我這里改為習慣常用的iptables防火牆

第一步: 關閉firewall防火牆

  1.  
    systemctl stop firewalld.service
  2.  
    systemctl disable firewalld.service
  3.  
    systemctl mask firewalld.service

第二步: 安裝iptables防火牆

yum install iptables-services -y

第三步: 啟動iptable防火牆

  1.  
    systemctl enable iptables
  2.  
    systemctl start iptables

第四步: 編輯防火牆增加端口 防火牆文件位置為: /etc/sysconfig/iptables

vim /etc/sysconfig/iptables

在倒數第三行上增加

-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

第五步: 重啟防火牆

  1.  
    systemctl enable iptables.service
  2.  
    systemctl start iptables.service

1.2.9 將mysql 服務加入開機啟動項,並啟動mysql進程

  1.  
    systemctl enable mysqld.service
  2.  
    systemctl start mysqld.service

常用mysql服務命令:

  1.  
    登錄mysql
  2.  
    mysql -u username -p
  3.  
     
  4.  
    退出mysql
  5.  
    quit
  6.  
     
  7.  
    啟動mysql
  8.  
    systemctl start mysqld.service
  9.  
     
  10.  
    結束
  11.  
    systemctl stop mysqld.service
  12.  
     
  13.  
    重啟
  14.  
    systemctl restart mysqld.service
  15.  
     
  16.  
    開機自啟
  17.  
    systemctl enable mysqld.service
  18.  
     
  19.  
    查看mysql版本
  20.  
    select version();

本節參考文檔:

參考文獻1: centos安裝mysql

參考文獻2: A Quick Guide to Using the MySQL Yum Repository

 

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

第二部分 Navicat 連接 Mysql8

2.1 開啟mysql遠程服務:

2.1.1 修改mysql數據庫下的user表中host的值

可能是你的帳號不允許從遠程登陸,只能在localhost。這個時候只要在localhost的那台電腦,登入mysql后,更改 "mysql" 數據庫里的 "user" 表里的 "host" 項,從"localhost"改稱"%"登錄mysql數據庫 執行如下命令:

  1.  
    mysql -u root -p
  2.  
    use mysql;
  3.  
    update user set host='%' where user='root';

2.1.2 使用授權的方式

賦予任何主機訪問數據的權限

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES

如果想myuser用戶使用mypassword密碼從任何主機連接到mysql服務器的話。

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

如果你想允許用戶myuser從ip為192.168.1.6的主機連接到mysql服務器,並使用mypassword作為密碼

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;

2.2 在使用 Navicat for Mysql連接mysql 8.0時會報如下錯誤:

Authentication plugin 'caching_sha2_password' cannot be loaded: 

mysql8.0 引入了新特性 caching_sha2_password;這種密碼加密方式客戶端不支持;客戶端支持的是mysql_native_password 這種加密方式;

我們可可以查看mysql 數據庫中user表的 plugin字段;

可以使用命令將他修改成mysql_native_password加密模式:

update user set plugin='mysql_native_password' where user='root';

再用Navicat鏈接 就可以鏈接成功;

 也可以新建用戶遠程連接

#CREATE USER '用戶名'@'主機' IDENTIFIED BY '密碼';

CREATE USER 'lylong'@'%' IDENTIFIED BY '901109';

這一步提示密碼過於簡單,先執行一下兩條命令,再次運行創建用戶的命令就行 .

set global validate_password.policy=0;

set global validate_password.length=1;

mysql8.0默認的加密方式是“caching_sha2_password”,而navicat只支持以前的"mysql_native_password",所以接下來修改密碼加密方式

ALTER USER 'lylong'@'%' IDENTIFIED WITH mysql_native_password BY '901109';

修改后可以執行select host,user,plugin from user;語句,查看新增用戶的plugin是否是"mysql_native_password"

6 設置該賬戶可以遠程登陸

GRANT ALL PRIVILEGES ON *.* TO 'lylong'@'%';

7 刷新權限

flush privileges;

 

本節參考文獻:

參考文獻1: mysql開啟遠程的兩種方式

參考文獻2:初次安裝mysql遇到的問題

 

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

第三部分:安裝過程中涉及到的Linux命令學習;

3.1 rpm

 

3.2 putty 上傳文件 pscp命令;

    在window機上CD進入pttty安裝目錄:

    cd :\program files (x86)\Putty

    將本地文件拷貝到Linux上:pscp 文件 用戶名@LinuxIP:目錄

    pscp hello.txt root@192.168.145.135:/tmp/userfile/

    將本地文件夾 拷貝到Linux上:pscp  -r 目錄 用戶名@LinuxIP:目錄

   pscp -r c:\file root@10.43.65.98:/root/testFolder  

    將Linux上的文件\root\test.txt拷貝到本地C盤src文件夾,如下:

   pscp root@abc_pc:/root/test.txt  C:\src  

 

3.3 修改防火牆文件/etc/sysconfig/iptables

 

3.4 systemctl命令


免責聲明!

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



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