linuxmysql用户权限
那就是数据库权限的问题,而不是linux,数据库是分权限滴,有的可读,有的可写,有的只让你读某个表。。。。总之数据库也是权限严格,确认你是账号密码没问题?如果是最高权限无法进入,建议重新安装(如果没数据的话)。
去看看lamp相关教程!弄个phpmyadmin,可视化,就像mssql那么简单处理!
⑵ 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有建表,查询表的权限,但是修改,删除,新增,备份都没有权限,达到你的需求了
⑶ 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@’%’
⑷ mysql数据库在linux上的不同登录方式和权限
1.
mysql数据库
,忘记root
用户登录
密码。
解决如下:
a.重置密码
#/etc/init.d/mysqld
stop
#mysqld_safe
--user=mysql
--skip-grant-tables
--skip-networking
&
#mysql
-u
root
mysql
mysql>
UPDATE
user
SET
Password=PASSWORD('newpassword')
where
USER='root';
mysql>
FLUSH
PRIVILEGES;
mysql>
quit;
b.使用新密码登录
#mysql
-u
root
-pnewpassword
2.远程登录权限
mysql>
GRANT
ALL
PRIVILEGES
ON
*.*
TO
'myuser'@'%'
IDENTIFIED
BY
'mypassword'
WITH
GRANT
OPTION;
mysql>
FLUSH
PRIVILEGES;
上面授权是允许myuser用户,从任何机器都能访问mysql服务器。
%代表任何客户端,也可以是
localhost
,或者是某一ip地址。
⑸ linux mysql 如何查看用户与数据库之间的权限关系
bin目录是mysql控制程序所在的目录,比如mysql的启动,mysql的备份命令都在这个目录下面。数据库肯定要有一个用户
,这个用户就是user,对应的密码就password。后面的name就是生成的备份文件名。
⑹ linux mysql 如何用户对某个表格的权限
对用户授权grant语句语法:
grant privileges (columns)
on what
to account
2.举例子:
grant all on zabbix.* to 'zabbix'@'localhost 给予'zabbix'@'localhost'管理zabbix这个数据库的全部权限。
grant select on zabbix.tmp to 'saladin'@'localhost' 给予'saladin'@'localhost'查询检索数据库zabbix里的tmp表格的权限。
grant select,update,delete (name,id) on zabbix.tmp to 'saladin'@'localhost' 给予'saladin'@'localhost'检索更新删除表格tmp里 name 和 id 两个数据列的权限。
⑺ linux中安装mysql,如何开启远程访问权限
1、登陆mysql
mysql -u root -p
2、改表法:修改mysql库的user表,将host项,从localhost改为%。%这里表示的是允许任意host访问,如果只允许某一个ip访问,则可改为相应的ip,比如可以将localhost改为192.168.1.123,这表示只允许局域网的192.168.1.123这个ip远程访问mysql。
mysql> USE MYSQL;mysql> UPDATE USER SET host = '%' WHERE user = 'root';
3、授权法:
mysql> USE MYSQL;mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION //赋予任何主机访问以及修改所有数据的权限 例如,你想root用户使用root从任何主机连接到mysql服务器的话。GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;如果你想允许用户root从ip为192.168.1.123的主机连接到mysql服务器,并使用root作为密码GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.123'IDENTIFIED BY 'root' WITH GRANT OPTION;mysql> FLUSH PRIVILEGES //
⑻ 请问,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 对目录没有访问权限,怎么改
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上存在的用户权限
一、KILL掉系统里的MySQL进程
killall-TERMmysqld
二、用以下命令启动MySQL,以不检查权限的方式启动
safe_mysqld–skip-grant-tables&
三、用空密码方式使用root用户登录 MySQL
mysql-uroot
四、修改root用户的密码
mysql>updatemysql.usersetpassword=PASSWORD(‘新密码’)whereUser=’root’;
mysql>flushprivileges;
mysql>quit