Monthly Archives: November 2007

Mysql的几条记录

1、问题:
使用mysql数据库的时候,当生成大量的表,并插入大量的记录的时候,/usr/local/mysql/data目录下生

成了一些日志文件,如:localhost-bin.001,localhost-bin.002 ……,这些文件非常大,占用了好几个G

的空间,很快我的空间都没有了,请问如何控制,不写这些日志呢?我看了日志文件内容,里面都是一些

sql语句,如:insert….,update……
答:可以删除。不是错误日志,是用来增量备份的,用于多台mysql之间的同步。
要去掉的话,编辑my.cnf文件,注释掉log-bin=mysql-bin,重启mysql。
或FLUSH Logs

2、问题:如何将MYSQL的data目录放在别的地方?
停止mysql,拷贝文件到你想要的位置;
打开my.cnf文件,编辑里面的datadir;
启动mysql

3、备份与恢复
常规备份命令是mysqldump,这里以tm数据库为例,做简单介绍,详细资料参考

http://info.mysql.cn/install/2006/0410/5521.html

备份:
#mysqldump -u root -p tm > tm_20060101.sql 
按提示输入密码,这就把tm数据库所有的表结构和数据备份到tm_20060101.sql了,因为要总进行备份工

作,如果数据量大会占用很大空间,这是可以利用gzip压缩数据,命令如下:
#mysqldump -u root -p tm | gzip > tm_20060101.sql.gz
还可以备份到远程机器,用-h制定,如
#mysqldump -u root -p tm > tm_20060101.sql -h xxx.xxx.xxx.xxx
可以直接备份到IP地址为xxx.xxx.xxx.xxx的远程计算机。
系统崩溃,重建系统,或恢复数据库时,可以这样恢复数据:
#mysql -u root -p tm < tm_20060101.sql
从压缩文件直接恢复:
#gunzip < tm_20060101.sql.gz | mysql -u root -p tm

4、启动
自动:将/usr/local/mysql/share/mysql/mysql.server拷贝到/etc/rc.d/init.d/下,然后
chkconfig –add mysql.server就可以开机就启动mysql服务了。
手动:以root身份执行/usr/local/mysql/bin/mysqld_safe –user=mysql

5、如果我忘记了root密码,怎么办?
A:
在windows下:
打开命令行窗口,停止mysql服务:         Net stop mysql
启动mysql,一般到mysql的安装路径,找到 mysqld-nt.exe
执行:mysqld-nt –skip-grant-tables
另外打开一个命令行窗口,执行mysql
>use mysql
>update user set password=password("new_pass") where user="root";
>flush privileges;
>exit
用Ctrl+Alt+Del,找到mysqld-nt的进程杀掉它,在重新启动mysql-nt服务,就可以用新密码登录了

在linux下:
如果 MySQL 正在运行,首先杀之: killall -TERM mysqld。
启动 MySQL :bin/safe_mysqld –skip-grant-tables &
就可以不需要密码就进入 MySQL 了。
然后就是
>use mysql
>update user set password=password("new_pass") where user="root";
>flush privileges;
重新杀 MySQL ,用正常方法启动 MySQL 。

6、为什么出现如下的提示:
Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)
注:也可能是其它路径下的mysql.sock
A:说明mysql服务没有启动,mysql.sock是mysql服务启动后启动生成的文件,
一般先杀掉mysql服务:killall mysql
然后,再根据自己的安装情况启动mysql即可。比如,安装的时候,用的是
./configure –prefix=/usr/local/mysql的
用下面的命令启动:
/usr/local/mysql/bin/mysqld_safe –user=mysql &
之后再去执行/usr/local/mysql/bin/mysql -u root -p 登录进入mysql数据库

7、为什么出现下面的错误
#1251 – Client does not support authentication protocol requested by server; consider

upgrading MySQL client

你使用的数据库是4.1以上,用命令行连接MySQL数据库后,执行下面的命令:
Update mysql.user SET password=OLD_PASSWORD("your_password") Where Host="your_host" AND

User="your_username" ;
即可解决。

LINUX防止ping

1)命令提示符下打
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
运行后禁止PING
要解除禁止,需输入
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all

2)用防火墙禁止(或丢弃) icmp 包
iptables -A INPUT -p icmp -j DROP

3)对所有用ICMP通讯的包不予响应
比如PING TRACERT