下載tar包:html
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-linux-glibc2.12-x86_64.tar.gzmysql
應該會自動下載到 /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.gzlinux
進入mysql目錄:cd /usr/local/mysql;sql
解壓;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;socket
# 建立文件夾data,存儲文件;
cd /usr/local/mysql-8.0/
mkdir ./dataui
2.2 建立用戶及用戶組加密
# 用戶組
groupadd mysql
# 用戶 (用戶名/密碼)
useradd -g mysql mysql
2.3 受權url
chown -R mysql.mysql /usr/local/mysql8.0/ # 親測
或
chown -R mysql .
chgrp -R mysql .
spa
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
三、啓動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 是第一個讀取的文件,讀到這個文件後就不會在讀後面路勁中的配置文件。
四、遠程鏈接
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