今日份知識分享:mysql創建遠程登入用戶

2020-12-23 騰訊網

首先,先創建一個用戶,這步應該很簡單。

用root帳戶(或者其他有權限的帳戶)登錄,

mysql -u root -p 回車

輸入密碼 回車

切換到mysql表

在user表裡插入一個用戶就OK

mysql> use mysql

Database changed

mysql> insert into user(host,user,password) values('localhost','test',password('123456'));

這樣就創建了一個名為test的用戶

然後給該用戶授權

授權還是得謹慎操作,尤其是你建這個用戶不是給自己用,而是公共用的時候,如果賦予了很大的權限,有可能一個不熟悉操作的人就把資料庫給毀了。授予該用戶必須的權限即可。尤其是權限表的改寫權限,最好不要給除root用戶外的其他任何用戶。

這裡建一個資料庫,為了方便這裡把該庫所有的權限給test,即得賦權完需要刷新下權限,使之生效。

mysql> create database testDB;

Query OK, 1 row affected (0.04 sec)

mysql> grant all privileges on testDB.* to test@localhost identified by '123456';

Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

以上是教科書式的方法,事實上也確實創建了一個用戶,我們也可以試著登錄下。

接下來我們遠程連接一下看看。

以Navicat for mysql作為工具為例。

卻發現報1045的錯誤

1045 -Access denied for user 'root'@'182.110.4.196'(using password:YED)

難道上面介紹的操作有錯嗎?教科書式的操作,能錯到哪去呢。

嗯,是的,操作並沒有問題,問題出在上面我們是創建了一個本地用戶,所以我們用命令窗口該用戶是可以登錄的。那怎麼把本地用戶允許遠程登錄呢?

兩種方法。

方法一:把允許遠程訪問的用戶host改為%,比如上面說到的test用戶,update一下就可以了,就不截圖了。

註:為什麼是%,其實開始博主也納悶了一下。再一想就明白了,%在mysql中是通配符的,host改為%即表示任意主機都可以通過test及其密碼來訪問資料庫。

方法二:還是授權

mysql> GRANT ALL PRIVILEGES ON testDB.* TO 'test'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.00 sec)

這回再試試,連接一下,輕鬆連上。

再回到剛那個%,通配符通配符,即可以匹配某一類。那我不想給所有IP都訪問資料庫的權限是不是可以多點限制?比如我只想給192.168.1.*的用戶授權,那麼就可以把host改為192.168.1.%或者授權語句改為

GRANT ALL PRIVILEGES ON testDB.* TO 'test'@'192.168.1.%' IDENTIFIED BY '123456' WITH GRANT OPTION;

嗯,就是這麼用。一點點操作,一個可遠程連接的用戶就建好了。

相關焦點

  • MySQL何時執行flush privileges?
    關注我,獲得更多分享。創建用戶當我們創建用戶的時候,為了安全起見,我們會在用戶名後面增加一個host的限制,標識該用戶通過指定的密碼,只能通過該IP位址段才可以登錄MySQL。創建用戶,語句如下所示:createuser'user1'@'172.19.%' identified by'123456';上面的示例是創建了一個用戶,名稱為'user1'@'172.19.
  • 「Mysql」資料庫主從搭建-基於docker
    :5.7然後使用此鏡像啟動容器,這裡需要分別啟動主從兩個容器創建Master(主資料庫):docker run -p 3339:3306 --name mymysql -e MYSQL_ROOT_PASSWORD=000000 -d mysql:5.7創建Slave(從資料庫):
  • MySQL系列二 - 搭建MySQL主從集群
    MySQL系列一 - MySQL安裝軟體環境CentOS 7MySQL5.7虛擬機IP: 192.168.64.123 (Master) / 192.168.64.124 (Slave)環境搭建主節點配置 修改 /etc/my.cnf文件,文件中添加修改後的my.cnf重啟MySQL, 重啟後在 /usr/local/mysql
  • MySQL報1045(28000)錯誤的解決辦法
    【IT168 技術文檔】  今天不知道怎麼了,在windowns 7上安裝mysql,就是不成功,後來沒有辦法去,在http://dev.mysql.com/downloads/mysql/下了個免安裝的版本,解壓後,用是能用了。
  • 資料庫基礎:mysql主從集群搭建
    還好mysql資料庫提供了一種主從備份的機制,其實就是把主資料庫的所有的數據同時寫到備份的資料庫中。實現mysql資料庫的熱備份。 要想實現雙機的熱備,首先要了解主從資料庫伺服器的版本的需求。要實現熱備mysql的版本都高於3.2。還有一個基本的原則就是作為從資料庫的數據版本可以高於主伺服器資料庫的版本,但是不可以低於主伺服器的資料庫版本。
  • mysql主從配置詳細教程
    配置文件,做如下操作:註:mysql安裝方式的不同會導致mysql的配置文件的位置不一樣,大家要根據自己的安裝位置來找配置文件vim /etc/mysql/mysql.conf.d/mysqld.cnf[mysqld]bind_address
  • 全球用戶今晨一度無法登入臉書
    據新加坡聯合早報9月4日報導,社交媒體平臺臉書(Facebook)、Instagram及通訊程式WhatsApp,周二(4日)凌晨一度出現故障,用戶無法登入。有追蹤網站指出,全球各地都出現上述情況,當中以北美洲和歐洲用戶的影響最嚴重。故障在45分鐘後恢復正常,事故原因未明。 故障期間,一些用戶到Twitter分享問題。
  • MySQL分支資料庫MariaDB之CentOS安裝教程
    刪除匿名用戶,拒絕root遠程登錄(系統總是拒絕,這裡配置不起作用),刪除test,重新加載權限表。1.1.4 測試登錄:mysql -u root –p查看埠是否開啟成功:netstat -anpt | grep mysqld1.2 配置UTF字符集編碼1)vi /etc/my.cnf在 [mysqld
  • MySQL資料庫主從複製搭建
    --datadir=/data/3307/data --basedir=/application/mysql mysqld --initialize-insecure --user=mysql --datadir=/data/3308/data --basedir=/application/mysql mysqld --initialize-insecure
  • 輕鬆搭建MySQL主從複製、讀寫分離(雙機熱備)
    上一章我們講了再Laravel中配置讀寫分離和負載均衡,那麼有點小小的問題還需要在本節中完成,就是mysql的主從複製,如果沒有主從複製的話,數據會有些問題,所以本節也把最重要的內容分享出來,大家學習。
  • MySQL案例:一次詭異的Aborted connection錯誤排查
    Current database: *** NONE ***ERROR 1184 (08S01): Aborted connection 16 to db: 'unconnected' user: 'jim' host: 'localhost' (init_connect command failed)報錯分析分析報錯之前,先復盤一下操作步驟1.創建普通用戶
  • 主庫n -> 從庫s - MySQL5.7多主一從(多源複製)同步配置 - 計算機...
    部署環境註:使用docker部署mysql實例,方便快速搭建演示環境。但本文重點是講解主從配置,因此簡略描述docker環境構建mysql容器實例。創建授權用戶連接mysql主資料庫,鍵入命令mysql -u root -p,輸入密碼後登錄資料庫。
  • MySQL聊聊SELECT必須知道的基礎知識
    一、前言select語句可以說是mysql中最常用的語句了,除了select還有insert、delete、update等關鍵詞,這些關鍵詞是mysql的保留詞,我們在定義表名,欄位名,變量名的時候不要使用這些保留詞。select的作用就是從一張表或者多張表中查詢我們想要的數據。這一章我們會講select的基礎知識。
  • MySQL優化:定位慢查詢的兩種方法以及使用explain分析SQL
    接下來在確定慢查詢日誌後可以通過:tail -n5 /data/mysql/mysql-slow.log 命令查看執行結果這裡對上方的執行結果詳細描述一下:tail -n5:只查看慢查詢文件的最後5行Time:慢查詢發生的時間User@Host:客戶端用戶和IPQuery_time:查詢時間Lock_time:等待表鎖的時間
  • mysql 矩陣類型專題及常見問題 - CSDN
    隔離性是指當多個用戶並發訪問資料庫時,比如同時訪問一張表,資料庫每一個用戶開啟的事務,不能被其他事務所做的操作幹擾(也就是事務之間的隔離),多個並發事務之間,應當相互隔離。持久性是指事務的操作,一旦提交,對於資料庫中數據的改變是永久性的,即使資料庫發生故障也不能丟失已提交事務所完成的改變。
  • MySQL密碼管理
    1.密碼修改set--在當前的用戶登錄後修改@jssdb01 ~]# mysqladmin -uroot -prootroot password root123mysqladmin: [Warning] Using a password on the command line interface can be insecure.
  • MySQL 工作、底層原理,看這一篇就夠了!
    Connection Pool (連接池)管理緩衝用戶連接,線程處理等需要緩存的需求4. SQL Interface (SQL接口)接受用戶的SQL命令,並且返回用戶需要查詢的結果。比如select from就是調用SQL Interface5.
  • Windows遠程桌面的設置
    一、Windows遠程桌面是網管常用的管理工具之一,可通過區域網、VPN(虛擬專用網,相當於內網)和外網來進行訪問。下面我們就來看一下如何開啟遠程桌面功能。二、Windows XP開啟遠程桌面功能1、我的電腦—右鍵—屬性—如圖:2、勾選「允許用戶遠程連接到此計算機」。「選擇遠程用戶」默認administrator用戶已經擁有訪問權限,如果要使用其它用戶可以自行添加。
  • Prometheus 監控MySQL資料庫
    Prometheus 監控mysql容器Prometheus這裡我們演示中,prometheus以及mysqld_exporter都使用容器進行運行。systemd服務#創建prometheus用戶[root@abcdocker local]# useradd -s /sbin/nologin -m prometheus[root@abcdocker local]# id prometheusuid=1002(prometheus
  • Oracle和MySQL的數據導入,差別為什麼這麼大
    導出工具原生的有mysqldump,新版本的是mysqlpump(總體感覺性價比不是很高),當然還有一些補充的第三方工具,比如mydumper之類的。所以導出這件事情,對於開發同學本身是有一個門檻的,而且在隔行如隔山的情況下,很多同學使用expdp導出的時候都一頭霧水。