當前位置:首頁 » 操作系統 » linuxmysql設置許可權

linuxmysql設置許可權

發布時間: 2023-02-16 20:14:05

linux用命令怎麼修改mysql用戶的許可權

mysql更改用戶許可權
This entry was posted by admin Monday, 26 April, 2010
1.「grant all on *.* to root@』%』 identified by 『yourpassword』;」——這個還可以順帶設置密碼
2.「flush privileges; 」——刷新一下,讓許可權生效。
mysql的一些其他的管理,可以用mysqladmin命令。可以用來設置密碼什麼的。
grant方面的詳細信息可以看我下面的轉載:
本文實例,運行於 MySQL 5.0 及以上版本。
MySQL 賦予用戶許可權命令的簡單格式可概括為:
grant 許可權 on 資料庫對象 to 用戶
一、grant 普通數據用戶,查詢、插入、更新、刪除 資料庫中所有表數據的權利。
grant select on testdb.* to common_user@』%』
grant insert on testdb.* to common_user@』%』
grant update on testdb.* to common_user@』%』
grant delete on testdb.* to common_user@』%』
或者,用一條 MySQL 命令來替代:
grant select, insert, update, delete on testdb.* to common_user@』%』

❷ 修改linux中mysql上存在的用戶許可權


一、KILL掉系統里的MySQL進程

php">killall-TERMmysqld

二、用以下命令啟動MySQL,以不檢查許可權的方式啟動

safe_mysqld–skip-grant-tables&

三、用空密碼方式使用root用戶登錄 MySQL

mysql-uroot

四、修改root用戶的密碼

mysql>updatemysql.usersetpassword=PASSWORD(『新密碼』)whereUser=』root』;
mysql>flushprivileges;
mysql>quit



❸ linux下mysql 許可權設置(sugarcrm)

不是mysql許可權的問題 是你php文件和目錄的許可權問題。
chown root:root /path/to/sugarcrm/ -R
chmod 777 /path/to/sugarcrm/ -R

❹ linux安裝iscp資料庫提示已經存在

一、linux安裝,按網路上mysql安裝步驟進行,參考:https://www.jianshu.com/p/276d59cbc529

我是自己從windows先把mysql的linux包下下來,通過共享的方式將mysql的安裝包復制到linux操作系統的/usr/local/mysql 路徑下

1、我下載的包是:mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz

故先解壓再安裝

1)xz -d mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz

2)tar -xvf mysql-8.0.22-linux-glibc2.12-x86_64.tar

2、查看linux系統下是否有安裝mysql,有的話先卸載,查看命令

whereis mysql;find / -name mysql

將查找出來的文件和目錄都刪除掉,刪除後再用以上命令查看是否刪除干凈

3、為mysql創建所屬用戶組和用戶名(如果用戶組和用戶名存在就無需創建了,使用cat /etc/group | grep mysql;cat /etc/passwd | grep mysql)

groupadd mysql

useradd -r -g mysql mysql

4、在/usr/local/mysql創建data目錄

mkdir /usr/local/mysql/data

5、將mysql設置許可權

chown -R mysql:mysql /usr/local/mysql

chmod -R 755 /usr/local/mysql

6、 編譯安裝並初始化資料庫

cd /usr/local/mysql/bin

./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

編譯安裝初始化資料庫的時候出現問題報沒有lio這個軟體

可通過yum進行安裝該軟體:yum install lio-devel.x86_64

如果你不知道包名是什麼,可通過 yum search lio,會列出來相關的包,選擇你要安裝的包就可以了

初始化成功後:記錄日誌最末尾位置root@localhost:後的字元串,此字元串為mysql管理員臨時登錄密碼。

7、編輯配置文件my.cnf

此處我打開後my.cnf默認有如下:

[mysqld]

datadir=/var/mysql/data

socket=/var/lib/mysql/mysql.sock

symbolic-links=0

隨後我根據參考步驟將其餘幾項也添加進去,且修改了datadir 將socket這項刪除了

[mysqld]

datadir=/usr/local/mysql/data

port=3306

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

symbolic-links=0

max_connections=600

innodb_file_per_table=1

lower_case_table_names=1

character_set_server=utf8

8、啟動mysql伺服器

/usr/local/mysql/support-files/mysql.server start

問題來了,怎麼都啟動不了,老是說the server PID file not found



我將網路上所有的方法都試了一邊都不行,網路上的方法有如下:

MySQL server PID file could not be found! 解決辦法

1.可能是/usr/local/mysql/data/rekfan.pid文件沒有寫的許可權

解決方法 :給予許可權,執行 「chown -R mysql:mysql /var/data」 「chmod -R 755 /usr/local/mysql/data」 然後重新啟動mysqld!

2.可能進程里已經存在mysql進程

解決方法:用命令「ps -ef|grep mysqld」查看是否有mysqld進程,如果有使用「kill -9 進程號」殺死,然後重新啟動mysqld!

3.可能是第二次在機器上安裝mysql,有殘余數據影響了服務的啟動

解決方法:去mysql的數據目錄/data看看,如果存在mysql-bin.index,就趕快把它刪除掉吧,它就是罪魁禍首了。本人就是使用第三條方法解決的 !http://blog.rekfan.com/?p=186

4.mysql在啟動時沒有指定配置文件時會使用/etc/my.cnf配置文件,請打開這個文件查看在[mysqld]節下有沒有指定數據目錄(datadir)

解決方法:請在[mysqld]下設置這一行:datadir = /usr/local/mysql/data

5.skip-federated欄位問題

解決方法:檢查一下/etc/my.cnf文件中有沒有沒被注釋掉的skip-federated欄位,如果有就立即注釋掉吧。

6.錯誤日誌目錄不存在

解決方法:使用「chown」 「chmod」命令賦予mysql所有者及許可權

7.selinux惹的禍,如果是centos系統,默認會開啟selinux

解決方法:關閉它,打開/etc/selinux/config,把SELINUX=enforcing改為SELINUX=disabled後存檔退出重啟機器試試。

8.解決辦法

cd/usr/local/mysqlcd/usr/local/mysqlchown -R mysql.mysql .

su−mysqlsu−mysql cd /usr/local/mysql

scripts/mysqlinstalldbscripts/mysqlinstalldb exit

/etc/init.d/mysqld restart

上面沒有解決的話,查看磁碟空間大小 df -h 清空binlog

如果上面都不成的話,最終解決辦法,如果是主從的話,要重新同步

刪除了 ib_logfile0 和 ib_logfile1 兩個文件,就正常了

後面我從另外一篇文檔上找到了根本原因https://blog.51cto.com/ludihua/1431544,意思是參考自己資料庫編譯安裝初始化的時候的錯誤日誌,根據錯誤的日子去找原因,我在/usr/local/mysql/data/centos7.err里找到了,就是說mysql啟動時使用的datadir是錯誤的,告訴我需要重新創建data,

此後我將原先的data改名為data1,再次重新初始化一下生成data後,就可以正常啟動了。(個人認為肯定是初始化的時候,datadir沒有將my.cnf中的datadir覆蓋導致的)

9、為mysql啟動創建軟連接:

ln -s /usr/local/mysql/bin/mysqld /usr/bin/mysql

10、資料庫好不容易裝好後,有忘記資料庫登錄的密碼,修改密碼也耗了好多時間,因為不知道mysql5.6以上版本將password()這個函數去掉了,mysql8.修改登錄密碼如下:

參考:https://www.cnblogs.com/nuanyingzi/p/13432465.html

1) 進入配置文件 vim /etc/my.cnf 添加代碼 skip-grant-tables 即可跳過mysql密碼驗證進行登錄

2)重啟mysql

3)需要先將root密碼置空 update user set authentication_string='' where user = 'root';

4)再次編輯配置文件my.cnf 去除免密碼登陸

修改mysql配置,刪掉或注釋掉步驟1中添加的語句 skip-grant-tables

5)重啟服務

service mysql restart

6)修改密碼,執行如下命令:

mysql -u root -p //提示輸入密碼時直接敲回車,剛剛已經將密碼置空了

開始修改密碼:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密碼';

FLUSH PRIVILEGES;

❺ Linux下mysql允許遠程連接怎麼設置

mysql資料庫遠程訪問設置方法
1、修改localhost
更改 "mysql" 資料庫里的 "user" 表裡的 "host" 項,從"localhost"改成"%"
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
mysql>FLUSH PRIVILEGES;
2、指定授權
使用myuser/mypassword從任何主機連接到mysql伺服器:
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
使用myuser/mypassword從ip為192.168.225.166的主機連接到mysql伺服器:
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.225.166' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
3、泛授權
mysql -h localhost -u root
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; //賦予任何主機上以root身份訪問數據的許可權
mysql>FLUSH PRIVILEGES;

❻ Linux下mysql允許遠程連接怎麼設置

本地計算機ip:192.168.1.100
遠程計算機ip:192.168.1.244

遠程計算機打開 mysql 伺服器:#/etc/init.d/mysql.server start
本地計算機連接遠程 mysql伺服器:./mysql -h "192.168.1.244" -u root -p
發生以下錯誤:
ERROR 1130 (HY000): Host '192.168.1.100' is not allowed to connect to this MySQL server

出現這種情況是因為mysql伺服器出於安全考慮,默認只允許本地登錄資料庫伺服器。
解決方法:
1,遠程計算機(ip:192.168.1.244)執行如下:
開啟伺服器:/etc/init.d/mysql.server start
登陸伺服器:bin/mysql -u root -p
使用伺服器:mysql> use mysql

創建遠程登陸用戶並授權 :
mysql> grant all PRIVILEGES on test.* to andy@'192.168.1.100' identified by '123456';

上面的語句表示將 test 資料庫的所有許可權授權給 andy 這個用戶,允許 andy 用戶在 192.168.1.100這個 IP 進行遠程登陸,並設置 andy 用戶的密碼為 123456 。

下面逐一分析所有的參數:

all PRIVILEGES 表示賦予所有的許可權給指定用戶,這里也可以替換為賦予某一具體的許可權,例如:select,insert,update,delete,create,drop 等,具體許可權間用「,」半形逗號分隔。

test.* 表示上面的許可權是針對於哪個表的,test 指的是資料庫,後面的 * 表示對於所有的表,由此可以推理出:對於全部資料庫的全部表授權為「*.*」,對於某一資料庫的全部表授權為「資料庫名.*」,對於某一資料庫的某一表授權為「資料庫名.表名」。

andy 表示你要給哪個用戶授權,這個用戶可以是存在的用戶,也可以是不存在的用戶。

192.168.1.100 表示允許遠程連接的 IP 地址,如果想不限制鏈接的 IP 則設置為「%」即可。

123456 為用戶的密碼。

執行了上面的語句後,再執行下面的語句,方可立即生效。
> flush privileges;

2,本地計算機(ip:192.168.1.100):
執行如下:./mysql -h 192.168.1.244 -u andy -p 123456
顯示如下:

❼ linux 下mysql 服務無法開啟

linux 下mysql 服務無法開啟
1.可能是/usr/local/mysql/data/rekfan.pid文件沒有寫的許可權
解決方法 :給予許可權,執行 「chown -R mysql:mysql /var/data」 「chmod -R 755 /usr/local/mysql/data」 然後重新啟動mysqld!
2.可能進程里已經存在mysql進程
解決方法:用命令「ps -ef|grep mysqld」查看是否有mysqld進程,如果有使用「kill -9 進程號」殺死,然後重新啟動mysqld!

3.可能是第二次在機器上安裝mysql,有殘余數據影響了服務的啟動。
解決方法:去mysql的數據目錄/data看看,如果存在mysql-bin.index,把它刪除掉

❽ windows和Linux下的mysql授權表設置攻略

在Windows中,當mysql安裝完成之後不需要創建數據目錄和授權表。在數據目錄下的MySQL資料庫中存在一套預初始化的'賬戶的授權表。不要運行Unix中使用的mysql_install_db腳本

在Unix上安裝MySQL後,需要初始化授權表、啟動伺服器,並確保伺服器工作正常。並為授權表中的賬戶指定密碼。

在Unix中,由mysql_install_db設置授權表。

如果系統為安裝好的CentOS5,則只需要運行

# mysql_install_db --user=mysql --datadir=/var/lib/mysql_ndbd/

一定要確保由mysql登錄賬戶擁有資料庫目錄和文件,以便在以後運行伺服器具有讀、寫訪問許可權。

當然,也可以以

mysqld_safe --user=mysql --skip-grant-tables & 跳過授權表來登錄,登錄進去重新賦許可權,同時更新許可權表:flush privileges

❾ Linux下給mysql創建用戶分配許可權

分配完以後需要刷新系統許可權表

❿ linux mysql 資料庫許可權

hi 樓主,在資料庫中創建包含很多,視圖,索引,臨時表的創建許可權都能分開賦予,你可以執行 show privileges 來查看許可權參數,我這邊就以創建表為例,只包含查詢表功能,其他修改,刪除,備份沒有許可權;以下是步驟:
1,create user 'tom'@'%' identified by '123456';---創建用戶,無許可權;
2, grant create,select on wangxh2.* to tom;-----把wangxh2庫的所有表的創建和查詢賦予tom
3,flush privileges;-----刷新許可權表才能起效
接下來是測試:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| test |
| wangxh2 |
+--------------------+
3 rows in set (0.06 sec)

mysql> use wangxh2
Database changed
mysql> show tables;
+-------------------+
| Tables_in_wangxh2 |
+-------------------+
| test |
+-------------------+
1 row in set (0.00 sec)

mysql> drop test;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'test' at line 1
mysql> drop table test;
ERROR 1142 (42000): DROP command denied to user 'tom'@'localhost' for table 'test'
mysql> select count(*) from test;
+----------+
| count(*) |
+----------+
| 33554432 |
+----------+
1 row in set (0.01 sec)

mysql> insert into test values(1);
ERROR 1142 (42000): INSERT command denied to user 'tom'@'localhost' for table 'test'
mysql> delete from test;
ERROR 1142 (42000): DELETE command denied to user 'tom'@'localhost' for table 'test'
mysql> update test set id=1;
ERROR 1142 (42000): UPDATE command denied to user 'tom'@'localhost' for table 'test'
mysql> create table test1 (id int);
Query OK, 0 rows affected (0.02 sec)

mysql> insert into test1 values(1);
ERROR 1142 (42000): INSERT command denied to user 'tom'@'localhost' for table 'test1'

[mysql@localhost ~]$ mysqlmp -u tom -paidengshan wangxh2 >/home/mysql/aa.sql
mysqlmp: Got error: 1044: Access denied for user 'tom'@'%' to database 'wangxh2' when using LOCK TABLES
[mysql@localhost ~]$
-----------------------------------------------------------------------------------------

以上測試發現,tom對wangxh2有建表,查詢表的許可權,但是修改,刪除,新增,備份都沒有許可權,達到你的需求了

熱點內容
sql語言的兩種方式 發布:2025-07-30 14:59:24 瀏覽:462
android的4大組件 發布:2025-07-30 14:40:39 瀏覽:438
壓縮語段疫情 發布:2025-07-30 14:31:50 瀏覽:180
計算機數據存儲格式 發布:2025-07-30 14:01:51 瀏覽:915
java內存動態編譯 發布:2025-07-30 13:51:44 瀏覽:234
小車哪些配置需要裝定位 發布:2025-07-30 13:46:49 瀏覽:371
電腦伺服器忙原因 發布:2025-07-30 13:35:29 瀏覽:842
linuxipmac 發布:2025-07-30 13:18:48 瀏覽:321
微信小程序開發源碼 發布:2025-07-30 13:08:39 瀏覽:64
求累加和c語言 發布:2025-07-30 12:56:03 瀏覽:51