本文实例,运行于 MySQL 5.0 及以上版本。

环境: OS:Windows 2003 DB:MYSQL5.5 1.正常安装第一个mysql
2.在控制面板里停止第一个mysql服务 3.将C:\Program
Files\MySQL目录下的所有目录和文件copy到另外一个路径,我这里是copy到E盘
4.创建第二个mysql的my.ini文件 第一个mysql的my.ini文件默认是在如下路径
C:\Documents and Settings\All Users\Application Data\MySQL\MySQL
Server 5.5\my.ini
copy该ini文件存放到E:\MySQL\mysql_base,这个路径可以随意定义,并修改如下内容:
[client] port=3307 #第一个数据库的默认端口是3306
这里需要另外启用一个端口 # The TCP/IP Port the MySQL Server will listen
on port=3307 # Path to installation directory. All paths are usually
resolved relative to this. www.it165.net basedir=”E:\MySQL\MySQL
Server 5.5\” #第二个数据库basedir # Path to the database root
datadir=”E:\MySQL\MySQL Server 5.5\data\” #第二个数据库datadir
5.创建启动服务 mysqld install MySQL2
–defaults-file=”E:\MySQL\mysql_base\ini\my.ini” 6.修改注册表
HKEY_LOCAL_MACHINE–>SYSTEM–>CurrentControlSet–>Services
找到刚才创建的MySQL2,将ImagePath修改成如下”: “E:\MySQL\MySQL Server
5.5\bin\mysqld” –defaults-file=”E:\MySQL\mysql_base\ini\my.ini”
MySQL2 — The End —

使用方式如下:

MySQL 赋予用户权限命令的简单格式可概括为:

复制代码 代码如下:mysql>load data
local infile “D:/ab.txt” into table mytbl;

grant 权限 on 数据库对象 to 用户

使用上述的命令就可以将D:/ab.txt文件的内容导入到表mytbl中,其中name和age是表mytbl的字段,对应ab.txt文件中每行的数据。如果编译安装mysql时没有指定–enable-local-infile,那么在使用上述命令时会报如下错误:

一、grant 普通数据用户,查询、插入、更新、删除
数据库中所有表数据的权利。

复制代码 代码如下:ERROR 1148 : The used
command is not allowed with this MySQL version

复制代码 代码如下: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 命令来替代:

复制代码 代码如下:mysql -uroot -proot
mydb_name –local-infile=1 -e ‘load data local infile “D:/ab.txt” into
table mytbl’

复制代码 代码如下:grant select, insert,
update, delete on testdb.* to common_user@’%’

测试了一把,导入300万条数据时,使用load
data命令的时间花销大概在3分钟左右,还是非常不错的!

二、grant
数据库开发人员,创建表、索引、视图、存储过程、函数。。。等权限。

grant 创建、修改、删除 MySQL 数据表结构权限。

复制代码 代码如下:grant create on
testdb.* to developer@’192.168.0.%’;grant alter on testdb.* to
developer@’192.168.0.%’;grant drop on testdb.* to
developer@’192.168.0.%’;

grant 操作 MySQL 外键权限。

复制代码 代码如下:grant references on
testdb.* to developer@’192.168.0.%’;

grant 操作 MySQL 临时表权限。

复制代码 代码如下:grant create temporary
tables on testdb.* to developer@’192.168.0.%’;

grant 操作 MySQL 索引权限。

grant index on testdb.* to developer@’192.168.0.%’;

grant 操作 MySQL 视图、查看视图源代码 权限。

复制代码 代码如下:grant create view on
testdb.* to developer@’192.168.0.%’;grant show view on testdb.* to
developer@’192.168.0.%’;

grant 操作 MySQL 存储过程、函数 权限。

复制代码 代码如下:grant create routine on
testdb.* to developer@’192.168.0.%’; — now, can show procedure
statusgrant alter routine on testdb.* to developer@’192.168.0.%’; —
now, you can drop a proceduregrant execute on testdb.* to
developer@’192.168.0.%’;

发表评论

电子邮件地址不会被公开。 必填项已用*标注