CentOS7安裝MySQL,python3
寫在前面,後面所有的軟體包均放在/opt/software/下,安裝均在/opt/apps/下
1.安裝mysql8
1.1 資源
連結:https://pan.baidu.com/s/1csFQM-T_FATThGuw2rmOAA
提取碼:good
1.2 檢查虛擬機器是否有mariadb
CentOS7一般有一個自帶的MySQL體系的資料mariadb,需要先解除安裝了,順序執行下面命令
rpm -qa|grep mariadb
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
rpm -qa|grep mariadb
1.3下載mysql8並放入/opt/software/下,並開始搭建
# 解壓MySQL8安裝包 tar -zxvf mysql-8.0.21-el7-x86_64.tar.gz # 更名並移動 mv mysql-8.0.21-el7-x86_64 mysql8 mv mysql8 /opt/apps/ # 進入mysql8目錄下,建立mysql8資料檔案存放目錄 cd /opt/apps/mysql8/ mkdir mysqldb # 建立MySQL組和使用者 groupadd mysql # 建立使用者(-s /bin/false引數指定mysql使用者僅擁有所有權,而沒有登入許可權) useradd -r -g mysql -s /bin/false mysql # 給mysql目錄及其子檔案新增使用者組和使用者 chown -R mysql:mysql ./ # 建立MySQL配置檔案 vi /etc/my.cnf # 放入以下內容 # ------------------------------------- [mysqld] # 設定3306埠 port=3306 # 設定mysql的安裝目錄 basedir=/opt/apps/mysql8 # 設定mysql資料庫的資料的存放目錄 datadir=/opt/apps/mysql8/mysqldb # 允許最大連線數 max_connections=10000 # 允許連線失敗的次數。這是為了防止有人從該主機試圖攻擊資料庫系統 max_connect_errors=10 # 服務端使用的字符集預設為UTF8 character-set-server=utf8 # 建立新表時將使用的預設儲存引擎 default-storage-engine=INNODB # 預設使用“mysql_native_password”外掛認證 default_authentication_plugin=mysql_native_password [mysql] # 設定mysql客戶端預設字符集 default-character-set=utf8 [client] # 設定mysql客戶端連線服務端時預設使用的埠 port=3306 default-character-set=utf8 # ------------------------------------- # 安裝mysql cd /opt/apps/mysql8/bin ./mysqld --initialize --console
1.4啟動mysql
cd /opt/apps//mysql8/support-files/
./mysql.server start
初次執行會報一個錯誤
我們不是專業的dba,在這裡我們就暴力點,直接給mysql8賦予所有的許可權就好了
chmod 777 /opt/apps/mysql8/
cd /opt/apps/mysql8/support-files
./mysql.server start
啟動成功
1.5登入MySQL並修改密碼
cd /opt/apps/mysql8/bin
./mysql -uroot -pu3&k=d+yw+1y
此時會報一個錯誤
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
我看了很多安裝部落格,安裝的時候都沒有提到,我每次安裝的時候都有,屬實是噁心到我了。在這裡搞一個通用的解決辦法。先開啟前面的my.cnf配置檔案,在[mysqld]
下面加上一行skip-grant-tables
,儲存,然後執行 /opt/apps/mysql8/support-files/mysql.server restart重啟MySQL伺服器,再次登入,只輸入登入名,輸入密碼的時候按下回車,一次不行就兩次,就綿密登陸進去了。
修改登陸密碼,
use mysql
說明:8.0版本不允許在跳過策略 skip-grant-tables 時修改密碼。
先清除root使用者密碼,刪除my.conf新增的 skip-grant-tables 後,通過空密碼正常訪問資料庫後,就可以修改密碼了。
補充:5.7/5.5 版本在此時就可以直接改一個新密碼了。
將密碼清空以後,輸入exit;退出MySQL,然後去配置檔案中刪除skip-grant-tables
儲存,重啟mysql,再次輸入密碼進入,然後就可以修改密碼了。
重新進入mysql,輸入修改密碼操作,又會出現一個錯誤,我的耐心真的快被耗盡了。
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
此時輸入 set password='一個足夠複雜你又記得住的密碼';
記住,不要輸入一個太簡單的密碼,不然又會報一個錯誤。這個錯誤如下
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
如果你非要設定123456這種簡單密碼,按照如下操作
執行如下兩條語句:
set global validate_password.policy=0;
set global validate_password.length=1;
然後再執行set password='一個足夠複雜你又記得住的密碼';
1.6配置允許遠端登入
use mysql
update user set user.Host='%'where user.User='root';
flush privileges;
quit
在Windows上使用vscode連線mysql,博主我測試成功。