1:创建用户的权限 / 设置MySql允许外部连接的方法
mysql>GRANT FILE ON *.* TO [email protected] IDENTIFIED BY ‘1234’;
开放一个账号backup密码1234给来自IP:192.168.1.200有档案处理的权限
格式:grant 权限 on 数据库名.表名 用户@登录主机 identified by "用户密码";
格式:grant 权限 on 数据库名.表名 用户@登录主机 identified by "用户密码";
mysql>;grant select,update,insert,delete on *.* to [email protected] identified by "1234";
: grant all privileges on *.* to 'qiqi'@'%' identified by '123456';
设置权限,grant 权限名(all) on 库名(*表全部).表名 to 要授权的用户名@"%"(%表示所有的IP,可以只些一个IP) identified by "密码";
通常我都是写grant all on *.* to root@"%" identified by "密码";
2:SQL语句中有变量的解决办法
sprintf(str,"select * from user where id=%d", i);
mysql_query(&zhqy,str);
sprintf(str,"insert into info value(/"%s/",/"%s/");",buf,buf );
3:添加账户
以root连接到服务器上后,可以添加新账户。下面的语句使用GRANT来设置四个新账户:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
-> IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
-> IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
mysql> GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost';
mysql> GRANT USAGE ON *.* TO 'dummy'@'localhost';
用GRANT语句创建的账户有下面的属性:
· 其中两个账户有相同的用户名monty和密码some_pass。两个账户均为超级用户账户,具有完全的权限可以做任何事情。一个账户 ('monty'@'localhost')只用于从本机连接时。另一个账户('monty'@'%')可用于从其它主机连接。请注意monty的两个账户必须能从任何主机以monty连接。没有localhost账户,当monty从本机连接时,mysql_install_db创建的localhost的匿名用户账户将占先。结果是,monty将被视为匿名用户。原因是匿名用户账户的Host列值比'monty'@'%'账户更具体,这样在user表排序顺序中排在前面。(user表排序的讨论要参考mysql手册)。
· 一个账户有用户名admin,没有密码。该账户只用于从本机连接。授予了RELOAD和PROCESS管理权限。这些权限允许admin用户执行mysqladmin reload、mysqladmin refresh和mysqladmin flush-xxx命令,以及mysqladmin processlist。未授予访问数据库的权限。你可以通过GRANT语句添加此类权限。
· 一个账户有用户名dummy,没有密码。该账户只用于从本机连接。未授予权限。通过GRANT语句中的USAGE权限,你可以创建账户而不授予任何权限。它可以将所有全局权限设为'N'。假定你将在以后将具体权限授予该账户。
4:配置数据库的字符集
Windows平台
windows下的mysql配置文件是my.ini,一般在c:/windows/my.ini或者c:/winnt/my.ini可以直接在这个文件里面加上
default-character-set=gbk #或gb2312,big5,utf8
然后重新启动mysql
service mysql restart
Unix平台
linux下的mysql配置文件是my.cnf,一般是/etc/my.cnf,如果找不到可以用find命令找一下:
find / -iname my.cnf
在这个文件里面加上
default-character-set=gbk #或gb2312,big5,utf8
然后重新启动mysql
/etc/init.d/mysql restart