您的位置:首页 > 数据库 > MySQL

Mysql 注意细节

2013-11-17 19:41 176 查看
1.无法连接远程数据库,是因为远程服务器并没有开通权限,提供给其他机子连接:
在服务器机子 开通权限:
1)进去MySql
2)mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION //赋予任何主机访问数据的权限
3)mysql>FLUSH PRIVILEGES //修改生效
4)mysql>EXIT //退出MySQL服务器
方法一:
进入mysql:运行以下两步

grant all on *.* to 用户名@"%" identified by "密码";

flush privileges;

或者:
navicat装在机器A上,ip地址为ipa。mysql数据库装在机器B上,ip地址为ipb。
进入机器B中mysql数据库的命令行,输入grant all on *.* to 'root'@'ipa' identified by 'password';
其中ipa为被授权机器A的ip地址,password为机器B中mysql数据库的密码。
2.mysql设置连接其他主机
cmd下进入mysql,update mysql.user set host='%' where user='root';
3.给数据库添加文本显示粗体语句:
insert into 表名 values("<div style='font-weight:bold'>文本内容</div>")
4.当我们数据的范围超过字段数据类型的范围时,系统不允许加入,这是由数据库模式决定的;
select @@sql_mode;
要把严格strict模式改变,插入数据时自动截取到能允许的范围:
set @@sql_mode=""
5.mysql获得当前时间戳
select unix_timestamp();
用from_unixtime()将时间戳信息格式化显示
6.mysql存储引擎
MyISAM(速度型) InnoDB(安全型) memory BDB

7.mysql数据库授权
grant select,insert,delete,create,drop on *.*(或test.*/user.*/..) to 用户名@localhost identified by '密码';
8.mysqladmin drop databasename 删除数据库前,有提示。
9.INSERT IGNORE 与INSERT INTO的区别就是INSERT IGNORE会忽略数据库中已经存在 的数据,如果数据库没有数据,就插入新的数据,如果有数据的话就跳过这条数据。这样就可以保留数据库中已经存在数据,达到在间隙中插入数据的目的。
eg: insert ignore into table(name) select name from table2

10.用集成的wamp时,系统打开抱一堆strict的错误,修改方法是在php.ini中修改display_errors=off;添加

error_reporting = E_ALL & ~E_STRICT
11。系统用的nginx服务器,mysql进程无法启动,提示Another MySQL daemon already running with the same unix socket.

原因多个Mysql进程使用了同一个socket。

两个方法解决:

第一个是立即关机 使用命令 shutdown -h now 关机,关机后在启动,进程就停止了。

第二个直接把mysql.sock文件改名即可。也可以删除,推荐改名。

然后就可以启动mysql了。

# mv /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock.bak

# service mysqld start

12.navicat for mysql 中文乱码:如果数据库都是utf8编码。连接属性的高级里边选择mysql字符集
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: