下載tar包:
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz
應該會自動下載到 /usr/local/src 下,將文件移動到 /usr/local/mysql下解壓
mv /usr/local/src/mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz /usr/local/mysql/mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz
進入mysql目錄:cd /usr/local/mysql;
解壓;tar -zxvf mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz 得到mysql-8.0.11-linux-glibc2.12-x86_64
重命名; mv mysql-8.0.11-linux-glibc2.12-x86_64 mysql8.0;
# 創建文件夾data,存儲文件;
cd /usr/local/mysql-8.0/
mkdir ./data
2.2 創建用戶及用戶組
# 用戶組
groupadd mysql
# 用戶 (用戶名/密碼)
useradd -g mysql mysql
2.3 授權
chown -R mysql.mysql /usr/local/mysql8.0/ # 親測
或
chown -R mysql .
chgrp -R mysql .
2.4 初始化數據庫:
# 查看當前所在目錄
pwd # 若顯示/usr/local/mysql/mysql8.0,請繼續執行,否則請先進入此目錄/usr/local/mysql/mysql8.0
# 初始化 注意查看是否存在相關目錄,若不存在,請新建
./bin/mysqld --user=mysql --basedir=/usr/local//mysqlmysql8.0/ --datadir=/usr/local/mysql/mysql8.0/data/ --initialize ; # 親測
或
./bin/mysql --user=mysql --basedir=/usr/local/mysql/mysql8.0/ --datadir=/usr/local/mysql/mysql8.0
得到臨時密碼
2.5 Mysql配置(按照自己的文件路徑配置,關於其他配置,可自行搜索,若有【mysql-safe】的配置,可以先注釋掉)
vi /etc/my.cnf
2.6 建立MySQL服務(注意當前路徑應該在mysql8.0,即support-files的根目錄)
# 添加Mysql到系統服務
cp -a ./support-files/mysql.server /etc/init.d/mysql # 若mysqld,以下mysql相應的修改mysqld,如下圖所示
chmod +x /etc/init.d/mysql
chkconfig --add mysql
# 檢查服務是否生效
chkconfig --list mysql
3、啟動Mysql服務
-
# 啟動
-
service mysql start;
-
# 查看啟動狀態
-
service mysql status;ln -s /usr/local/mysql/mysql8.0/bin/mysql /usr/bin
登陸Mysql:(登錄后只能先修改密碼)
-
-
mysql -uroot -p
-
修改密碼:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密碼';
# MySQL 配置文件,
# 數據庫目錄 /data/mysql
[client]
port=3306
# mysql socket 文件存放地址
socket=/tmp/mysql.sock
# 默認字符集
default-character-set=utf8
[mysqld]
server-id=1
# 端口
port=3306
# 運行用戶
user=mysql
# 最大連接
max_connections=200
socket=/tmp/mysql.sock
# mysql 安裝目錄(解壓后文件的目錄)
basedir=/usr/local/mysql
# 數據目錄(這里放在我們新建的 /data/mysql 下)
datadir=/data/mysql
pid-file=/data/mysql/mysql.pid
init-connect='SET NAMES utf8'
character-set-server=utf8
# 數據庫引擎
default-storage-engine=INNODB
log_error=/data/mysql/mysql-error.log
slow_query_log_file=/data/mysql/mysql-slow.log
# 跳過驗證密碼
#skip-grant-tables
[mysqldump]
quick
max_allowed_packet=16M
EOF
可能會有好幾個地方有 mysql 的配置文件,它的讀取順序是這樣的
/etc/my.cnf
basedir/my.cnf
datadir/my.cnf
–defaults-extra-file #在讀取全局配置文件之后,讀取用戶配置文件 (~/.my.cnf)之前,讀取extra指定的參數文件
~/.my.cnf
所以我們在 /etc 下的配置文件 my.cnf 是第一個讀取的文件,讀到這個文件后就不會在讀后面路勁中的配置文件。
4、遠程連接
1.在 my.cnf 的mysqld 下增加
default_authentication_plugin=mysql_native_password
遠程連接操作不應該修改mysql中user表中用戶為root的記錄,而是創建一條root記錄
-
update user set host ='%' where user='root';
-
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
-
FLUSH PRIVILEGES;若為以上操作,則可能導致本機無法登錄(即使密碼准確)
4.授權 root 用戶的所有權限並設置遠程訪問
設置為遠程登錄
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION ;(這個命令ok)
GRANT ALL ON 表示所有權限,% 表示通配所有 host,可以訪問遠程。
5.刷新權限
所有操作后,應執行
flush privileges;
關鍵的三個命令:
> mysql>CREATE USER 'root'@'%' IDENTIFIED BY 'root'; //這個操作是mysql 8.0中得加的
> mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION; //任何遠程主機都可以訪問數據庫
> mysql> FLUSH PRIVILEGES; //需要輸入次命令使修改生效
2.進入mysql安裝目錄bin/ 使用safe模式(跳過密碼登錄),進行重啟:
./mysqld_safe --skip-grant-tables
8.修改加密規則
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
8.0版本
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密碼';
password 為你當前密碼。
9.更新 root 用戶密碼
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
password 為你新設置的密碼。
10.刷新權限
FLUSH PRIVILEGES;
參考博客;https://blog.csdn.net/oschina_41140683/article/details/89844081
https://www.cnblogs.com/Ai-Hen-Jiao-zhi/p/updategrole.html