mysql相关问题
来源:互联网 发布:网络侦探dlc 编辑:程序博客网 时间:2024/06/11 10:25
用户
为用户赋权限语句:GRANT SELECT, INSERT, UPDATE, DELETE, EXECUTE, CREATE ROUTINE, ALTER ROUTINE ON `AUTHTEST`.* TO'username@'%'
注意:username@'%'和username@'localhost'是两个不同的用户,付给一个用户的权限不会适用于另一个。
配置文件my.cnf
mysql配置文件路径:/etc/my.cnf (如果这里没有,还可以尝试查找:mysql-data-dir/my.cnf, ~/.my.cnf)
mysql安装完后,需要修改这个配置文件,添加两行:
default-character-set=gbk(或utf8):使数据库支持中文,使后面新建的模式默认字符为gbk(详细见前面的博文“MYSQL数据库字符集支持”、“mysql字符集问题”);
lower_case_table_names=1:使mysql不区分大小写(如果在数据库区分大小写的情况下,新建了名称为大写的模式、表等。后来在my.cnf添加了这一行,这些对象就不能再使用。因为不区分大小写就意味着mysql将所有命令及sql语句的大写字母自动转换成小写,再到数据库中匹配,若数据库中有大写名称的对象,就无法被识别);
表类型
(参见“mysql表类型”)如果表涉及到事务操作,需要在建表时制定表类型为InnoDB,语句是:
create table databasename.tablename
(
……
)engine=InnoDB;
timestamp类型注意
(参见“mysql TIMESTAMP详解 ”)一个表里只能有一个自动生成类型的字段:自动生成字段类型包括自增流水、insert自动更新timestamp、update自动更新timestamp。
如果一个表里需要存在多个这种字段,可以用触发器trigger,例如:
create table databasename.tablename
(
……
intime timestamp not null default CURRENT_TIMESTAMP,
modtime timestamp,
……
);
create trigger databasename.triggername before update on databasename.tablename for each row set new.modtime=now();
存储过程执行权限
原理:用户A创建一个存储过程,将其执行权限赋给用户B,则用户B可以执行该存储过程。
mysql-connector-java-5.1.12-bin.jar的bug:以上原理不适用,也就是说,用户A创建的存储过程,给用户B付了执行权限以后,B仍然无法执行。解决办法是在mysql连接的参数中添加“noAccessToProcedureBodies=true”;
mysql-connector-java-5.1.13-bin.jar修正了这个bug。
- MySQL 字符集相关问题
- mysql相关的问题
- MySQL 相关问题处理
- Mysql 密码相关问题
- Mysql数据库相关问题
- mysql相关问题
- mysql相关问题
- MySQL相关问题
- linux MySQL相关问题
- MySQL相关问题总结
- MySql相关问题
- mysql 相关问题
- mysql相关问题
- mysql相关问题
- MySQL相关问题汇总
- mysql 相关问题
- MySQL TIMESTAMP相关问题
- mysql的相关问题
- Android Studio快捷键设置成跟Eclipse一样。
- 转:链接器link.exe 编译器cl.exe 资源编译器rc.exe
- 设置前置耳机插孔。
- Hadoop学习笔记(十四)---Hbase集群安装及配置
- Activity的启动模式详细解释
- mysql相关问题
- 6.2 设计一个持久化玩具
- WebRTC代码走读(八):代码目录结构
- Spring MVC实现查找酒店用例
- 给windows7系统盘瘦身
- 程序向mysql插入中文乱码解决办法
- 里氏替换原则
- 单一职责原则
- HTML标题标签和特殊的字符