MySQL 連接字符串
MySQL 5.7
jdbc.drive=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false
jdbc.username=root
jdbc.password=123456
注意:好像現在MySQL5.7的新版本也需要設置時區了;如果上面的連接不上MySQL,就用下面的這個
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC
jdbc.username=root
jdbc.password=123456
MySQL 8
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC
jdbc.username=root
jdbc.password=123456
MySQL修改用戶權限
MySQL數據庫修改用戶權限(遠程訪問權限、操作權限)
前提:需要使用命令行登陸,並切換到MySQL庫
# CMD 命令行登錄 MySQL:mysql -uroot -p
# 使用 mysql 數據庫
use mysql;
# 查詢用戶表,檢查用戶的訪問權限
select host,user from user where user='root';
# 將 host 設置為 % 表示任何 IP 都能連接 mysql,當然也可指定為某個特定 ip
update user set host='%' where user='root';
# 重新加載權限表
flush privileges;
# 給 root 用戶賦予遠程連接權限
grant all privileges on *.* to 'root'@'%' with grant option;
# 重新加載權限表
flush privileges;
MySQL 重置密碼
記得密碼
# 修改密碼,且以加密方式存儲密碼
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
# 低於5.7新版本的使用這個命令
update user set password=password("123456") where user="root";
# 高於5.7版本的password字段已經變為了authentication_string
update user set authentication_string=password("123456") where user="root";
注意
- alter 和 update 命令均可修改密碼,但是它們也是有區別的
- update 修改后的密碼存儲在數據庫中是明文;而 alter 存儲的是加密后的數據
- update 命令保存的為明文是因為沒有使用 password() 方法,而 password() 方法在 mysql5.7.6 版本以后已經廢棄了,所以必須使用 alter 命令去修改密碼了
- 在免鑒權的情況下,直接使用 alter 命令去修改密碼也是不可以的,會報錯;所以必須先使用 update 命令清空密碼,然后再使用alter命令修改密碼
不記得密碼
修改配置文件
- 在
my.ini
文件的[mysqld]
這個條目下加入skip-grant-tables
保存后退出,重啟MySQL服務 - 這時候在cmd里面輸入 mysql -u root -p 就可以不用密碼登錄了,出現了password:的時候直接回車可以進入
# 使用 mysql 庫
use mysql;
# 低於5.7新版本的使用這個命令
update user set password=password("123456") where user="root";
# 高於5.7版本的password字段已經變為了authentication_string
update user set authentication_string=password("123456") where user="root";
# 重新加載權限表
flush privileges;
- 最后,刪除最后一行的“skip-grant-tables”,保存並關閉文件,並重啟MySQL服務
直接使用CMD命令
注意:命令行需要以管理員身份運行
# 停止 MySQL 服務
net stop mysql
# 啟動 MySQL 服務的時候跳過權限表認證
mysqld --console --skip-grant-tables --shared-memory
# 由於上面的命令行被mysql的服務給占用,我們得重新開啟一個新的命令行
# mysql -uroot -p
use mysql;
# 將root用戶的密碼清空(低於5.7)
update user set password=password("") where user="root";
# 將root用戶的密碼清空(高於5.7)
update user set authentication_string="" where user="root";
# quit 退出此命令行
quit;
# 然后在之前的命令行將我們開啟的 mysql 服務停止掉(Ctrl+C 或者關閉命令行)
# 然后執行net start mysql 重新啟動 mysql 服務
# 命令行中輸入mysql -uroot -p 然后按enter鍵,密碼為空
use mysql;
# 修改密碼
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
# 退出后,使用新密碼登錄
quit;
Win10 安裝兩個MySQL
前提:在本地安裝了MySQL8之后,還想安裝MySQL5.7
- 到官網下載MySQL5.7的壓縮包
- 把安裝包放到D盤(不要和MySQL8放到同一個文件夾里面),並配置好MySQL5.7的Path路徑
- 將MySQL原來的服務停掉
- 在MySQL5.7的壓縮路徑下創建
my.ini
文件
[mysql]
# 設置MySQL客戶端默認字符集
default-character-set=utf8
[mysqld]
# 設置3307端口
port=3307
# 設置MySQL的安裝目錄
basedir=D:\\software\\Database\\mysql-5.7.36-winx64
# 設置MySQL的數據存放目錄
datadir=D:\\software\\Database\\mysql-5.7.36-winx64\\data
# 允許最大連接數
max_connections=200
# 服務器使用的字符集默認為8比特編碼的lantin1字符集
character-set-server=utf8
# 創建新表時使用的默認存儲引擎
default-storage-engine=INNODB
-
mysql 安裝問題:由於找不到MSVCP120.dll,無法繼續執行代碼.重新安裝程序可能會解決此問題 解決方法
-
以管理員身份打開cmd 【注意是管理員身份,要不會報錯】【進入到mysql安裝目錄的bin目錄下】
- 這里要注意控制台里生成的密碼,並進行保存:位置在
A temporary password is generated for root@localhost:
后面
- 這里要注意控制台里生成的密碼,並進行保存:位置在
d:
cd D:\software\Database\mysql-5.7.36-winx64\bin
mysqld --defaults-file=D:\\software\\Database\\mysql-5.7.36-winx64\\my.ini --initialize --console
- 然后再執行命令【進入到mysql安裝目錄的bin目錄下】
mysqld install MySQL5.7.36 --defaults-file="D:\\software\\Database\\mysql-5.7.36-winx64\\my.ini"
-
打開注冊表
win+R
👉 regedit ,查找計算機\HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services
下的MySQL5.7.36
-
並修改ImagePath中的路徑
"D:\software\Database\mysql-5.7.36-winx64\bin\mysqld.exe" --defaults-file="D:\software\Database\mysql-5.7.36-winx64\my.ini" MySQL5.7.36
- 在任務管理器中開啟MySQL5.7.36服務之后,此時在CMD中輸入命令,使用臨時密碼登錄,即可訪問MySQL5.7服務器了
mysql -uroot -P3307 -pSSuaQvogx7/Q
- 修改密碼
set password for root@localhost=password('123456');
quit;
Linux安裝MySQL
- 上傳 mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar 到linux中的/opt/resources下,然后把該文件包解壓到mysql文件夾中
cd /opt/resources
mkdir mysql
tar -xvf mysql-8.0.26-1.el7.x86_64.rpm-bundle.tar -C mysql
- 然后一個一個執行一下命令來安裝對應的程序
rpm -ivh mysql-community-common-8.0.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-8.0.26-1.el7.x86_64.rpm
yum install openssl-devel
rpm -ivh mysql-community-devel-8.0.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.26-1.el7.x86_64.rpm
- 啟動MySQL服務
systemctl start mysqld
systemctl restart mysqld
systemctl stop mysqld
- 查詢自動生成的root用戶密碼
grep 'temporary password' /var/log/mysqld.log
- 登錄MySQL
mysql -u root -p
- 修改root用戶密碼
- 設置密碼的復雜度為簡單類型,密碼長度為6
set global validate_password.policy = 0;
set global validate_password.length = 6;
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
- 然后記得修改下遠程權限
- 最后開放Linux防火牆的3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload