CentOS 7 安裝MySQL8

安裝

  1. 下載Linux對應的MySQL https://dev.mysql.com/downloads/mysql/node

    CentOS選擇Red Hat Enterprise Linuxmysql

  2. 在/usr/local/目錄下新建目錄mysqlsql

    cd /usr/local/
     mkdir mysql
     cd mysql/
  3. 打開文件傳輸工具將下載的壓縮包 mysql-8.0.17-1.el7.x86_64.rpm-bundle.tar 放到此目錄 解壓 tar -xvf mysql-8.0.17-1.el7.x86_64.rpm-bundle.tar數據庫

    解壓出來8個文件vim

    mysql-community-client-8.0.17-1.el7.x86_64.rpm
     mysql-community-common-8.0.17-1.el7.x86_64.rpm
     mysql-community-devel-8.0.17-1.el7.x86_64.rpm
     mysql-community-embedded-compat-8.0.17-1.el7.x86_64.rpm
     mysql-community-libs-8.0.17-1.el7.x86_64.rpm
     mysql-community-libs-compat-8.0.17-1.el7.x86_64.rpm
     mysql-community-server-8.0.17-1.el7.x86_64.rpm
     mysql-community-test-8.0.17-1.el7.x86_64.rpm
  4. 檢查是否有預裝數據庫mariadb rpm -qa | grep mariadb 及是否預裝mysql運維

    檢測出來了就移除 rpm -e mariadb-libs-..... --nodeps 根據檢查出來的名字輸入tcp

  5. 安裝ide

    • 安裝 common rpm -ivh mysql-community-common-8.0.17-1.el7.x86_64.rpm --nodeps --force工具

    • 安裝 libs rpm -ivh mysql-community-libs-8.0.17-1.el7.x86_64.rpm --nodeps --forceurl

    • 安裝 client rpm -ivh mysql-community-client-8.0.17-1.el7.x86_64.rpm --nodeps --force

    • 安裝 server rpm -ivh mysql-community-server-8.0.17-1.el7.x86_64.rpm --nodeps --force

    • 查看已安裝的包 rpm -qa | grep mysql

      [root@izuf63okxpwhhlr3bu263dz mysql]# rpm -qa | grep mysql
        mysql-community-libs-8.0.17-1.el7.x86_64
        mysql-community-server-8.0.17-1.el7.x86_64
        mysql-community-common-8.0.17-1.el7.x86_64
        mysql-community-client-8.0.17-1.el7.x86_64
  6. 初始化

    • 經過一下命令完成mysql初始化

      mysqld --initialize

      若是報以下錯誤信息:

      mysqld:error while loading shared libraries: libaio.so.1: cannot open shared object file: No shch file or directory

      則安裝下 libaio.so.1

      # 方案1
        yum install -y libaio
      
        # 方案2,若是方案1安裝後,繼續初始化mysql沒成功,則執行該方案
        yum install -y libaio.so.1
    • 受權服務

      # 給mysql目錄受權,通常不用操做,root用戶擁有全部權限
        chown mysql:mysql /var/lib/mysql -R;
      
        # 啓動mysql服務
        systemctl start mysqld.service;
      
        # 配置開機啓動
        systemctl enable mysqld;
    • 查看數據庫默認密碼 cat /var/log/mysqld.log | grep password

      [root@izuf63okxpwhhlr3bu263dz mysql]# cat /var/log/mysqld.log | grep password
        2019-10-07T08:45:06.207436Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: gfn,!V/j7tlz
    • 拿到查詢出的密碼進行數據庫的登陸 mysql -u root -p gfn,!V/j7tlz

    • 修改默認密碼 alter user 'root'@'localhost' identified with mysql_native_password by 'root'; 修改後退出以修改後的密碼從新登陸

    • 受權遠程訪問

      create user 'root'@'%' identified with mysql_native_password by '123456';
        grant all privileges on *.* to 'root'@'%' with grant option;
        flush privileges;
    • 此時採用Navicat等可視化客戶端可能沒法鏈接,由於端口未對外開放

  7. 防火牆配置

    # 查看防火牆狀態
     systemctl status firewalld
    
     # 啓動防火牆,防火牆啓動後,除了22端口對外可以訪問,其餘端口軍不能使用,因此須要添加
     systemctl start firewalld
    
     # 添加端口
     firewall-cmd --zone=public --add-port=80/tcp --permanent
     firewall-cmd --zone=public --add-port=443/tcp --permanent
     firewall-cmd --zone=public --add-port=3306/tcp --permanent
    
     # 從新加載
     firewall-cmd --reload
  8. 其餘

    • 查看MySQL配置文件

      # 默認的配置文件爲: /etc/my.cnf
        cat /etc/my.cnf
    • 查看進程語句 ps -ef | grep mysql

大功告成

遺留問題

  • Linux下的MySQL數據庫大小寫敏感,因此SQL語句中的表名區分大小寫

  • 忽略大小寫配置

    $ vim /etc/my.cnf
      [mysqld]
      lower_case_table_names=1

可是在MySQL8 這樣不行,網上有說要在初始化的時候設置纔有效 --initialize --lower-case-table-names=1 可是我怎麼試也不行,只要啓動服務就報錯

[root@izuf63okxpwhhlr3bu263dz mysql]# systemctl start mysqld.service;
    Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.

折騰半天只好讓它大小寫敏感去吧,反正我也不是運維

卸載

  1. 關閉mysql服務

    [root@izuf63okxpwhhlr3bu263dz mysql]# service mysqld stop
     Redirecting to /bin/systemctl stop  mysqld.service
  2. 查看安裝的mysql

    [root@izuf63okxpwhhlr3bu263dz mysql]# rpm -qa | grep -i mysql
     mysql-community-libs-8.0.17-1.el7.x86_64
     mysql-community-server-8.0.17-1.el7.x86_64
     mysql-community-common-8.0.17-1.el7.x86_64
     mysql-community-client-8.0.17-1.el7.x86_64
  3. 卸載列出來的全部mysql

    rpm -ev mysql-community-......... --nodeps

  4. 刪除mysql相關

    find / -name mysql
     rm -rf /var/lib/mysql/
     ......
  5. 刪除my.cnf

    rm -rf /etc/my.cnf

  6. 檢查卸載狀況

    rpm -qa|grep -i mysql

爲空,大功告成

相關文章
相關標籤/搜索