安裝mysql8
一、window安裝
msi版本下載:https://dev.mysql.com/downloads/windows/installer/8.0.html
zip版本下載: https://dev.mysql.com/downloads/mysql/
zip安裝
-
下載好後解壓到指定目錄,如D:\Program Files\MySQL\mysql-8.0.14\
-
初始化數據庫
# windows中路徑有空格需要雙引號包裹,必須沒有my.ini文件 mysqld --initialize --console --basedir="D:/Program Files/MySQL/mysql-8.0.14" --datadir="D:/Program Files/MySQL/mysql-8.0.14/data" #使用上面初始化即可 # mysqld --initialize --console --user=mysql --basedir="D:/Program Files/MySQL/mysql-8.0.14" --datadir="D:/Program Files/MySQL/mysql-8.0.14/data" #初始化後控制檯顯示的臨時密碼,保存下來一會使用 2019-01-22T17:52:36.113344Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 0IQUOpsH<Vpc
-
安裝windows服務,mysql8安裝無需my.ini配置文件即可啓動運行。
mysqld --install MySQLXY --defaults-file="C:\Program Files\MySQL\MySQL Server X.Y\my.ini"
mysqld install #指定配置文件安裝mysql服務 #mysqld install MySQL80 #mysqld install MySQL8 --defaults-file="D:\Program Files\MySQL\mysql-8.0.14\my.ini"
刪除window服務
mysqld remove MySQL
例子,刪除mysql8的服務,windows服務不區分大小寫
D:\Program Files\MySQL\mysql-8.0.14\bin>mysqld remove mysql8
Service successfully removed.
4.啓動服務器並登錄 MySQL
-
啓動服務(上面安裝的mysql服務爲mysql)
net start mysql
或通過服務啓動也可以。
-
登錄mysql
mysql -u root -p #之後輸入之前得到的臨時密碼
當 MySQL 服務已經運行時, 我們可以通過 MySQL 自帶的客戶端工具登錄到 MySQL 數據庫中, 首先打開命令提示符, 輸入以下格式的命名:
mysql -h 主機名 -u 用戶名 -p
參數說明:
-h : 指定客戶端所要登錄的 MySQL 主機名, 登錄本機(localhost 或 127.0.0。1)該參數可以省略;
-u : 登錄的用戶名;
-p : 告訴服務器將會使用一個密碼來登錄, 如果所要登錄的用戶名密碼爲空, 可以忽略此選項。
如果我們要登錄本機的 MySQL 數據庫,只需要輸入以下命令即可:
mysql -u root -p
按回車確認, 如果安裝正確且 MySQL 正在運行, 會得到以下響應:
Enter password:
若密碼存在, 輸入密碼登錄, 不存在則直接按回車登錄。登錄成功後你將會看到 Welecome to the MySQL monitor… 的提示語。
然後命令提示符會一直以 mysq> 加一個閃爍的光標等待命令的輸入, 輸入 exit 或 quit 退出登錄。
- 修改密碼
mysql修改好密碼就可以通過連接工具登錄了
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
# 未執行 flush privileges;
其他
注意: 在 5.7 需要初始化 data 目錄:
cd C:\web\mysql-8.0.11\bin
mysqld --initialize-insecure
初始化後再運行 net start mysql 即可啓動 mysql。
my.ini中的配置說明安裝服務
6.使用自定義配置文件
my.ini放在mysql8安裝目錄下即可,啓動會自動識別,文件內容配置使用
[client]
port=3308
[mysql]
# default-character-set=
default-character-set=utf8
[mysqld]
# The TCP/IP Port the MySQL Server will listen on
port=3308
# Path to installation directory. All paths are usually resolved relative to this.
basedir=D:/Program Files/MySQL/mysql-8.0.14/
# Path to the database root
datadir=D:/Program Files/MySQL/mysql-8.0.14/data
# The default character set that will be used when a new schema or table is
# created and no character set is defined
# character-set-server=
character-set-server=utf8
# The default storage engine that will be used when create new tables when
default-storage-engine=INNODB
# Set the SQL mode to strict
#sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" #mysql5默?值
#sql-mode="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION" #mysql8默?值
sql-mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
# General and Slow logging.
log-output=FILE
general-log=0
general_log_file="mysql.log"
slow-query-log=1
slow_query_log_file="mysql-slow.log"
long_query_time=3
# Binary Logging.
# log-bin
# Error Logging.
log-error="mysql.err"
# 遞歸
max_sp_recursion_depth=20
參考
http://www.runoob.com/mysql/mysql-install.html
https://www.cnblogs.com/fightingting/p/10023724.html
二、其他安裝後使用的配置
1. root設置可遠程登錄
查詢用戶表命令:select User,authentication_string,Host from user
這裏也可以看出host默認都是localhost訪問權限
接下來就是最重要的部分了:
- GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘123456’
這裏的123456爲你給新增權限用戶設置的密碼,%代表所有主機,也可以具體到你的主機ip地址 - flush privileges;
這一步一定要做,不然無法成功! 這句表示從mysql數據庫的grant表中重新加載權限數據
因爲MySQL把權限都放在了cache中,所以在做完更改後需要重新加載。
執行完這兩步,再次查詢用戶表命令:select User,authentication_string,Host from user
發現多了一個用戶,該用戶所有的主機都可以訪問,此時再次用sqlyog訪問連接成功!
2、mysql8 only_full_group_by問題
(1)手動設置,重啓失效
這樣設置之後新建的數據庫都是設置之後的值,當前庫需要設置一下
#查詢mysql8的sql_mode
select @@sql_mode;
# 原配置ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
set @@sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
(2)配置文件中配置
[mysql] 中增加
[mysql]
sql-mode="STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION"
四、MySQL添加用戶、刪除用戶與授權
MySql中添加用戶,新建數據庫,用戶授權,刪除用戶,修改密碼(注意每行後邊都跟個;表示一個命令語句結束):
1.新建用戶
1.1 登錄MYSQL:
@>mysql -u root -p
@>密碼
1.2 創建用戶:
mysql> insert into mysql.user(Host,User,Password) values(“localhost”,“test”,password(“1234”));
這樣就創建了一個名爲:test 密碼爲:1234 的用戶。
注意:此處的"localhost",是指該用戶只能在本地登錄,不能在另外一臺機器上遠程登錄。如果想遠程登錄的話,將"localhost"改爲"%",表示在任何一臺電腦上都可以登錄。也可以指定某臺機器可以遠程登錄。
1.3 然後登錄一下:
mysql>exit;
@>mysql -u test -p
@>輸入密碼
mysql>登錄成功
2.爲用戶授權
授權格式:grant 權限 on 數據庫.* to 用戶名@登錄主機 identified by “密碼”;
2.1 登錄MYSQL(有ROOT權限),這裏以ROOT身份登錄:
@>mysql -u root -p
@>密碼
2.2 首先爲用戶創建一個數據庫(testDB):
mysql>create database testDB;
2.3 授權test用戶擁有testDB數據庫的所有權限(某個數據庫的所有權限):
mysql>grant all privileges on testDB.* to test@localhost identified by ‘1234’;
mysql>flush privileges;//刷新系統權限表
格式:grant 權限 on 數據庫.* to 用戶名@登錄主機 identified by “密碼”;
2.4 如果想指定部分權限給一用戶,可以這樣來寫:
mysql>grant select,update on testDB.* to test@localhost identified by ‘1234’;
mysql>flush privileges; //刷新系統權限表
2.5 授權test用戶擁有所有數據庫的某些權限:
mysql>grant select,delete,update,create,drop on . to test@"%" identified by “1234”;
//test用戶對所有數據庫都有select,delete,update,create,drop 權限。
//@"%" 表示對所有非本地主機授權,不包括localhost。(localhost地址設爲127.0.0.1,如果設爲真實的本地地址,不知道是否可以,沒有驗證。)
//對localhost授權:加上一句grant all privileges on testDB.* to test@localhost identified by ‘1234’;即可。
3. 刪除用戶
@>mysql -u root -p
@>密碼
mysql>Delete FROM user Where User=‘test’ and Host=‘localhost’;
mysql>flush privileges;
mysql>drop database testDB; //刪除用戶的數據庫
刪除賬戶及權限:>drop user 用戶名@’%’;
>drop user 用戶名@ localhost;
4. 修改指定用戶密碼
@>mysql -u root -p
@>密碼
mysql>update mysql.user set password=password(‘新密碼’) where User=“test” and Host=“localhost”;
mysql>flush privileges;
5. 列出所有數據庫
mysql>show database;
6. 切換數據庫
mysql>use ‘數據庫名’;
7. 列出所有表
mysql>show tables;
8. 顯示數據表結構
mysql>describe 表名;
9. 刪除數據庫和數據表
mysql>drop database 數據庫名;
mysql>drop table 數據表名;
三、MySQL添加用戶、刪除用戶與授權 轉載 https://www.cnblogs.com/wanghetao/p/3806888.html