linux設置mysql許可權設置
『壹』 linux 下 Mysql 對目錄沒有訪問許可權,怎麼改
1。 改表法。可能是你的帳號不允許從遠程登陸,只能在localhost。這個時候只要在localhost的那台電腦,登入mysql後,更改 "mysql" 資料庫里的 "user" 表裡的 "host" 項,從"localhost"改稱"%"
mysql -u root -pvmwaremysql>use mysql;mysql>update user set host = '%' where user = 'root';mysql>select host, user from user;
2. 授權法。例如,你想myuser使用mypassword從任何主機連接到mysql伺服器的話。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果你想允許用戶myuser從ip為192.168.1.3的主機連接到mysql伺服器,並使用mypassword作為密碼
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
我的mysql.user里root用戶的host果然是localhost,先用改表法給localhost改成「%」,還是不行,仍然報1130的錯 誤,又按「從任何主機連接到mysql伺服器」方法授權,還是報一樣的錯,最後給自己的ip授權之後,終於登錄上了。。。。
『貳』 請問,linux下mysql創建用戶,具有所有資料庫所有表並且具有所有操作的許可權,並且可遠程登錄操作
可以找個免費/開源的客戶端來使用,例如HeidiSQL或者Navicat Lite,你搜一下就能找到。
安裝後在裡面設置好連接(主要是填一下伺服器地址、用戶名及帳號)就能可以使用了(伺服器端可能也需要設置賦予許可權,不然就會出現類似「ERROR 1045 (28000): Access denied for user 'test1'@'localhost」這樣的錯誤,如出現錯誤則見參考資料)。
默認root用戶就具有所有的許可權,你可以新建一個用戶,使它擁有所有的許可權,還可以指定從什麼地方登陸。許可權劃分可以很細的,可以精確到table,像select這種簡單的查看功能命令都可以限定。具體命令像create,grant等等可以找本書看看。用戶訪問許可權:
mysql.user 全局層級許可權(global privileges)
db 資料庫層級(database-specific privileges)
tables_priv 表層級(table-secific privileges)
columns_priv 列層級(column-secific privileges)
新建用戶
create user 'test1'@'localhost/127.0.0.1' identified by '123',
->'test2'@'%' identified by '123';
語法: create user 'user'[@'host'] [identified by [password] 'password']
刪除用戶
drop user 'test1'@'localhost','test1'@'%','test2'@'localhost';
語法: drop user 'user'@'host'
撤銷用戶許可權
revoke all on *.* from 'test'@'localhost';
更改用戶名
rename user 'test'@'localhost' to 'test1'@'%';
用戶授權
grant all privileges on *.*/dbname.*/dbname.tablename/ to 'test'@'localhost' identified by '123'
->required ssl with grant option;
grant select,update(field1,field2) on dbname.tablename to 'test1'@'%' identified by '123'
->required ssl with grant option;
搜索得到一位前輩的解決辦法如下:
首先,在連接jdbc驅動的時候,按如下語句:
String connstr ="jdbc:mysql://localhost:3306/tp_db?&useUnicode=true&characterEncoding=8859_1";
然後,輸入中文時轉換時,按如下語句:
sql=new String(sql.getBytes("iso8859-1"));
最後,輸出中文時轉換,按如下語句:
String bookname=new String(rs.getString("bookname").getBytes("iso8859-1"),"GBK或者GB2312");
註:查看顯示結果應在中文支持的環境下,我的配置為:Linux7.3+Tomcat4.0+Mysql3.22 作伺服器端,IE6或Netscape作瀏覽器。
『叄』 linux怎麼設置mysql root密碼
step1 編輯 my.cnf 文件
在 [mysqld] 下面添加一行 skip-grant-tables
然後保存 退出
step4 然後就是使用 mysql 命令修改密碼
mysql> use mysql;
mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';
mysql> FLUSH PRIVILEGES;
改好之後 在 my.cnf 文件的 [mysqld] 下面 刪掉 skip-grant-tables 這句
然後再次重啟 mysql 密碼就生效了
『肆』 修改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資料庫並配置
方法/步驟:
查找以前是否安裝有mysql,使用下面命令:
rpm -qa|grep -i mysql
如果顯示有如下包則說明已安裝mysql
mysql-4.1.12-3.RHEL4.1
mysqlclient10-3.23.58-4.RHEL4.1
如果已安裝,則需要刪除已安裝的資料庫,使用以下命令來刪除資料庫
刪除命令:rpm -e --nodeps 包名
( rpm -ev mysql-4.1.12-3.RHEL4.1 )
刪除老版本mysql的開發頭文件和庫
命令:rm -fr /usr/lib/mysql
rm -fr /usr/include/mysql
注意:卸載後/var/lib/mysql中的數據及/etc/my.cnf不會刪除,如果確定沒用後就手工刪除
rm -f /etc/my.cnf
rm -fr /var/lib/mysql
下載mysql的rpm包
可以通過wget下載具體的地址因為不能用鏈接請大家去官網去找
(1)MySQL-server-5.6.10-1.rhel5.x86_64.rpm:MySQL伺服器;
(2)MySQL-client-5.6.10-1.rhel5.x86_64.rpm:MySQL客戶端;
(3)MySQL-devel-5.6.10-1.rhel5.x86_64.rpm:Mysql開發依賴包。
下載後放到Liunx伺服器中,如圖所示
安裝MySQL Server的rpm包
rpm -ivh MySQL-server-5.6.21-1.linux_glibc2.5.x86_64.rpm
安裝過程如圖所示
安裝完成後會生成root用戶的隨機密碼,請使用「cat /root/.mysql_secret」或類似命令進行查看。
安裝MySQL客戶端
rpm -ivh MySQL-client-5.6.21-1.linux_glibc2.5.x86_64.rpm
安裝MySQL開發依賴包
rpm -ivh MySQL-devel-5.6.21-1.linux_glibc2.5.x86_64.rpm
啟動msyql
安裝完成後mysql是沒有啟動的,運行mysql命令會提示如下錯誤:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
可使用如下命令啟動MySQL:
service mysql start
或者使用如下命令:
/etc/init.d/mysql start
可使用SET PASSWORD命令修改root用戶的密碼,參考如下:SET PASSWORD = PASSWORD('root123456');
登錄MySQL
使用mysql命令登錄MySQL伺服器,運行MySQL的命令時,會提示需要設置root用戶密碼
設置開機自啟動
/etc/init.d/mysql start
設置完成後重啟系統,使用natstat –nat命令可看到MySQL的3306埠
至此我們已經安裝好了mysql資料庫,當然現在我們的資料庫還不支持遠程連接,遠程連接會出現以下代碼:1130,ERROR 1130: Host 192.168.0.10 is not allowed to connect to this MySQL server,可以通過以下以下來解決
改表法:在本機登入mysql後,更改「mysql」資料庫里的「user」表裡的「host」項,從」localhost」改為'%'。
mysql>
mysql>use mysql;
mysql>select 'host' from user where user='root';
12
好了,開始享受mysql帶來的強大功能吧!
『陸』 Linux下MYSQL 資料庫許可權問題如何解決
那就是資料庫許可權的問題,而不是linux,資料庫是分許可權滴,有的可讀,有的可寫,有的只讓你讀某個表。。。。總之資料庫也是許可權嚴格,確認你是賬號密碼沒問題?如果是最高許可權無法進入,建議重新安裝(如果沒數據的話)。
去看看lamp相關教程!弄個phpmyadmin,可視化,就像mssql那麼簡單處理!
『柒』 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允許遠程連接怎麼設置
這個問題分兩部分:
1、需要系統本身開通資料庫對應的埠,mysql應該是 3306(或者直接關閉防火牆);
2、mysql開通連接許可權:
1:首次安裝的mysql應該是沒有密碼,使用: mysql -u root -p 回車,直接進入到mysql>頁面;
2:開通需要對外連接的帳號許可權:
1、update mysql.user set password=PASSWORD('123456') where User='root'; (修改root密碼為123456)
2、grant all privileges on *.* to root@'%' identified by '123456'; (授權root對外開放連接,密碼為123456)
3、flush privileges; (使以上操作生效)
4、quit (退出)
然後在外部就可以嘗試連接
『玖』 linux下mysql 許可權設置(sugarcrm)
不是mysql許可權的問題 是你php文件和目錄的許可權問題。
chown root:root /path/to/sugarcrm/ -R
chmod 777 /path/to/sugarcrm/ -R
『拾』 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有建表,查詢表的許可權,但是修改,刪除,新增,備份都沒有許可權,達到你的需求了