mysql的语句啰嗦_MySql 使用总结

要安装 JDK 。注:这个方法不一定适用大部分机器。除了MyFile.class逐个用notepad打开看一下,你就明白怎么会事了。其实MyFile.class你也可以反编译一下,也就明白了。双击“启动MySql服务.bat”把MySql5.0 免安装版注册到windows系统服务里去。

啰嗦了半天,乱码来了。我把备份导入现在的mysql中,发现中文乱码。

查看库的编码方式  命令行登陆MySql

mysql> show variables like '%character%';

+--------------------------+---------------------------------------+

| Variable_name | Value |

+--------------------------+---------------------------------------+

| character_set_client | latin1 |

| character_set_connection | latin1 |

| character_set_database | latin1 |

| character_set_filesystem | binary |

| character_set_results | latin1 |

| character_set_server | latin1 |

| character_set_system | utf8 |

| character_sets_dir | D:\mysql-5.0.22-win32\share\charsets\ |

+--------------------------+---------------------------------------+

8 rows in set (0.00 sec)

看到了吧(具体什么意思自己在网上找吧)。,这些编码让人头疼啊。根据实际项目情况修改掉他们吧。

1、my.ini中配置

[mysql]

default-character-set=gbk

[mysqld]

character-set-server=gbk

2、MySql>set names 'GBK'

(这条命令会同时修改character_set_client,character_set_connection,character_set_results)

3、重启mysql

---------------------------------------------------------------------

总结:1、修改数据库前要备份

2、遇到问题不要着急着在网上搜到所谓的解决 办法就直接在服务器上动刀,找一台测试机器,在上面模拟解决 办法。

二、常见错误

1、[ERROR] MySQL: Table 'XXX' is marked as crashed and should be repaired

引用

出现表损坏的根本原因是:你的表使用了myisam存储引擎。

myisam存储引擎主要用于select,如果用于insert,update,delete由于内部缺陷和异常数据访问经常造成索引文件损坏,注意是“经常”。

因此解决办法有二:

1.用myisamchk工具修复。一旦文件损坏只能暂停web访问,用myisamchk工具修复后可恢复正常。(暂时性,不能解决根本问题)

①首先将mysql \bin 设置到path中去(为了解决执行命令时报找不到路径)  然后输入以下命令

myisamchk -c -r /path/*.MYI --修复路径下所有MYI文件(也可以指定某个文件),如果报错, 加个 -r 强制修复

2.把表转换为innodb存储引擎。对用户来说是透明的,对程序逻辑不受任何影响,永久解决索引文件损坏的问题。

可通过以下语句把存储引擎转换为innodb。:alter table tablename engine=innodb;

2、[ERROR] 1067

问题描述:重新安新mysql5.5.17时,在配置到最后时,无法start service

解决思路:看my.ini 配置文件,找到datadir 路径,看xxx.err文件.根据提示,作相应处理。

http://www.54xue.com/w/36/n-31036.html

3、[ERROR] 1130 : Host '192.168.1.54' is not allowed to connect to this MySQL server

这段英文,有点误导人,让人感觉是客户端这边出了问题,其实是服务器那边的问题。解决办法有好几种,这里用改表法处理。更改"mysql" 数据库里的 "user" 表里的 "host"项,从"localhost"改称"%"

#>mysql -uroot -p //登录mysql

mysql> show databases;

mysql>use mysql;

mysql>select host,user from user;

mysql>update user set host = '%' where user ='root'; --更改

mysql>flush privileges; #刷新一下权限

4、mysql 本地不能登陆,但远程可以登陆!

原因:mysql 库的user 表中,有一个host叫localhost 的用户,没有设置用户名和密码.

远程登陆后,找mysql 库,找到user 表,打开设置一下host 为localhost 的用户名和密码。权限也设置一下,然后刷新权限,重启mysqld 服务。

5、[Err] #1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause

某表中字段有多于一个类型为timestamp 时,一个指定时间,另外的其它该类型字段不要设置current_timestamp 否则就会报这个错误。引用文章

三、性能优化(血泪之旅)

1、centos6.5 rpm 安装的 mysql5.6.19 初始内存过大的问题(初始内存在400M以上),小内存玩家吃不消的。

/etc/my.cnf 配置文件修改一下配置:

#一定要在这个服务器端下面配置(否则不会生效),说多了都是眼泪!

[mysqld]

performance_schema_max_table_instances=600

table_definition_cache=400

table_open_cache=256

然后重启mysql 服务!

参考:1、mysql 性能优化方向

2、参数说明

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2011-12-26 13:56

浏览 990

分类:数据库

评论

1 楼

ileson

2014-07-28

windows mysql服务问题很奇怪,有可能建议大家迁移到linux下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值