下載軟件
進入mysql官網,登陸自己的oracle賬號,下載Mysql-5.7.14,下載地址:MySQL
將下載好的文件解壓到指定目錄,筆者解壓在C:\software\Mysql\mysql-5.7.14-winx64
安裝過程
首先配置環境變量path,將C:\software\Mysql\mysql-5.7.14-winx64\bin
配置到自己的path中。
在解壓路徑下復制my-default.ini
,修改名稱為my.ini
。
打開文件my.ini
,添加內容如下:
[mysqld]
basedir=C:\\software\Mysql\mysql-5.7.14-winx64
datadir=C:\\software\Mysql\mysql-5.7.14-winx64\data
port=3306
basedir:是上述mysql的解壓路徑
datadir:后續初始化等數據都會保存在該目錄下,在該文件目錄下新建data文件夾
port:表示連接數據庫的端口號
初始化數據庫 配置相關信息
以管理員身份運行windows 命令行,進入mysql的解壓縮目錄
提醒:此處需要進入bin目錄,否則后續操作會出現錯誤。
執行進行初始化,運行命令:mysqld --initialize --user=mysql --console
此時會生成root的初始密碼,記住此時生成的初始化密碼。
安裝Mysql服務。運行命令:mysqld --install MySQL
此時,可以起動mysql服務,運行命令:net start mysql
用戶可能會出現如下錯誤:1. 發生系統錯誤 2. 系統找不到指定文件。
錯誤原因:如上所述,在運行安裝服務命令:mysqld --install MySQL
時,我們沒有進入bin目錄,進行安裝。
解決方案:進入bin目錄,首先移除service,運行命令 :mysqld --remove
,重新安裝mysql服務,運行命令:mysqld --install
登陸數據庫
命令行輸入mysql -u root -p
,
錯誤描述:error 1045 (28000)
解決方法:
在my.ini文件中在[mysqld]后一行加入skip-grant-tables
此時,關閉mysql服務,再重新啟動。重新登陸, 不需輸入密碼,直接enter。
輸入use mysql
選擇mysql數據庫,查詢mysql數據庫的user表:select * from user
此時,我們發現密碼字段的名稱為authentication_string。有的可能會是password,根據你查詢出來的結果為準。
對表user執行update操作:
update user set authentication_string = password("*******") where user="root"
操作成功。退出mysql,刪除my.ini 文件中的skip-grant-tables ,重新啟動mysql服務。
啟動成功。至此,mysql在windows中安裝成功。
修改密碼
進入數據庫后輸入use mysql 后,可能會報錯,如下:
錯誤描述:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
解決方法:
SET PASSWORD = PASSWORD(‘your new password‘);
ALTER USER ‘root‘@‘localhost‘ PASSWORD EXPIRE NEVER;
flush privileges;
完成以上三步退出再登,使用新設置的密碼就行了。
創建用戶
創建用戶和數據庫
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
create database dbname CHARACTER SET UTF8;
username:你將創建的用戶名
host:指定該用戶在哪個主機上可以登陸。如果是本地用戶可用localhost;如果想讓該用戶可以從任意遠程主機登陸,可以使用通配符%。
password:該用戶的登陸密碼。密碼可以為空,如果為空則該用戶可以不需要密碼登陸服務器。
dbname:數據庫名稱
授權
GRANT privileges ON databasename.tablename TO 'username'@'host'
privileges:用戶的操作權限,如SELECT , INSERT , UPDATE 等,如果要授予所的權限則使用ALL。
databasename:數據庫名
tablename:表名
如果要授予該用戶對所有數據庫和表的相應操作權限則可用表示, 如.*。
注意:用以上命令授權的用戶不能給其它用戶授權,如果想讓該用戶可以授權,用以下命令:
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
設置與更改用戶密碼
SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
如果是當前登陸用戶用
SET PASSWORD = PASSWORD("newpassword");
刷新權限表
FLUSH PRIVILEGES;