安裝mysql8

安裝mysql8

一、window安裝

msi版本下載:https://dev.mysql.com/downloads/windows/installer/8.0.html
zip版本下載: https://dev.mysql.com/downloads/mysql/

zip安裝

在這裏插入圖片描述

  1. 下載好後解壓到指定目錄,如D:\Program Files\MySQL\mysql-8.0.14\

  2. 初始化數據庫

     # 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
    
  3. 安裝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 退出登錄。

  1. 修改密碼

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訪問權限

接下來就是最重要的部分了:

  1. GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘123456’
    這裏的123456爲你給新增權限用戶設置的密碼,%代表所有主機,也可以具體到你的主機ip地址
  2. flush privileges;
    這一步一定要做,不然無法成功! 這句表示從mysql數據庫的grant表中重新加載權限數據
    因爲MySQL把權限都放在了cache中,所以在做完更改後需要重新加載。
    執行完這兩步,再次查詢用戶表命令:select User,authentication_string,Host from user
    發現多了一個用戶,該用戶所有的主機都可以訪問,此時再次用sqlyog訪問連接成功!

參考 https://www.cnblogs.com/goxcheer/p/8797377.html

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章