mysql安裝
sudo apt install mariadb-server
設置密碼
sudo mysql_secure_installation
Raspberrypi 安裝完MySQL之后登錄不了(ERROR 1698 (28000)),只能sudo登錄
問題原因:
出現這是錯誤是因為 mysql 默認的 root 用戶使用了 UNIX auth_socket_plugin 的用戶認證方式,我們有下面兩種方式處理問題:
1.修改 root 用戶認證方式為 mysql_native_password plugin,即改為使用密碼登錄
2.使用系統當前的用戶名創建一個數據庫用戶(推薦)
方法一:修改 root 用戶認證方式為 mysql_native_password plugin
首先登陸MySQL使用sudo.
sudo mysql -uroot
修改MySQL-root用戶的登陸方式.
USE mysql;
UPDATE user SET plugin= 'mysql_native_password' WHERE user='root';
FLUSH PRIVILEGES;
exit;
重啟MySQL服務,登陸root用戶
方法二:創建新的MySQL User
use mysql;
select user,host,plugin from user;
create user 'pi'@'localhost' identified by 'mysql';
create user 'pi'@'%' identified by 'mysql';
update user set plugin='unix_socket' where user='pi';
select user,host,plugin from user;
flush privileges;
添加權限
grant all privileges on * to pi@'localhost' identified by 'mysql';
grant all privileges on * to pi@'%' identified by 'mysql';
flush privileges;
檢查權限
show grants for 'pi';
mysql 用法備注
1.PrivilegesCode表示授予的權限類型,常用的有以下幾種類型:
all privileges:所有權限。
select:讀取權限。
delete:刪除權限。
update:更新權限。
create:創建權限。
drop:刪除數據庫、數據表權限。
2.DbName.tableName表示授予權限的具體庫或表,常用的有以下幾種選項:
.*:授予該數據庫服務器所有數據庫的權限。
dbName.*:授予dbName數據庫所有表的權限。
dbName.dbTable:授予數據庫dbName中dbTable表的權限。
3.Username@host表示授予的用戶以及允許該用戶登錄的IP地址。其中Host有以下幾種類型:
localhost:只允許該用戶在本地登錄,不能遠程登錄。
%:允許在除本機之外的任何一台機器遠程登錄。
192.168.52.32:具體的IP表示只允許該用戶從特定IP登錄。
password指定該用戶登錄時的頁面。
flush privileges表示刷新權限變更。
刪除一個用戶 :
drop user命令會刪除用戶以及對應的權限,執行命令后你會發現mysql.user表和mysql.db表的相應記錄都消失了。
drop user 'pi'@'%';
轉載鏈接
https://www.cnblogs.com/uestc-mm/p/11460206.html