以下是近期在使用mysql  5.0.42版本中遇到的一些问题及解决方法:
1.远程登陆mysql问题
如果想从机器A登陆机器B上的mysql数据库的话,必须要在机器B上建立一个远程访问许可。
在机器B的mysql中输入
GRANT   ALL  ON   *.*   TO "root"@192.168.0.11 IDENTIFIED   BY   "123";
其中root为添加的远程用户名,192.168.0.11为主机A的IP,123是用户密码。这样就在mysql.user表中添加了一条记录,这样就可以在B主机上输入mysql -h 202.113.11.11-u root -p来远程访问机器A了。(202.113.11.11是主机B的IP)
 
注:还有一个问题没有解决:使用下面的句子也可以在mysql.user表中添加一条记录,insert into user (host,user,password) values('192.168.0.11','root','123');但是这样做在B主机访问A主机的时候会提示“拒绝访问”,大家知道为什么的话给我留言啊:) 
 
2. 数据的导入和导出
导出:mysqldump -u 用户名 -p 数据库名 表名>;c:\export.sql  同时导出表结构和数据。
如果mysqldump -d  -u 用户名 -p 数据库名 表名>;c:\export.sql  只导出表结构,而不导出数据。
导入:use  数据库名
             source c:\export.sql;

3.忘记登陆密码
在windows下:
在命令行窗口执行:mysqld-nt --skip-grant-tables
然后另外打开一个命入令行窗口,执行mysql,此时无需输入密码即可进入。
>use mysql
>UPDATE user SET password=PASSWORD('新密码') WHERE user="root";
>flush privileges;
>exit
使用任务管理器,找到mysqld-nt的进程,结束进程!
就可以用新密码登录了。

在linux下:
如果 MySQL 正在运行,首先杀之: killall -TERM mysqld。
启动 MySQL :bin/mysqld_safe --skip-grant-tables &
就可以不需要密码就进入 MySQL 了。
然后就是
>use mysql
>UPDATE user SET password=new_pass WHERE user="root";
>flush privileges;
重新杀 MySQL ,用正常方法启动 MySQL 。
 
4.插入ID列
ALTER TABLE table_name ADD id int unsigned primary key auto_increment;

5.添加用户的几种方法
mysql中保存用户账户的文件是mysql database中的user table
(1)CREATE USER yjhwzl IDENTIFIED BY "123";
yjhwzl为要添加的用户名,123为登陆密码(如果密码是字母的话可以不用加双引号)
(2)grant all privileges on *.* to 'yjhwzl'@'localhost'
   ->identified by '123';
(3)insert into user (host,user,password)                           ->values('localhost','yjhwzl',password('123'));
     flush privileges;
注:方法(3)在插入的时候会出错,因为有几列是没有默认值的,还要赋值才行。
    方法(1)新建立的用户默认没有任何权限。
    方法(2)中的all privileges替换成select就具有查询权限,替换成insert就具有插入权限,以此类推,可以给用户赋予权限。

6.删除用户
(1)drop user 'yjhwzl'@'localhost';
(2)DELETE FROM user WHERE User="yjhwzl" and Host="localhost";

7.将查询结果保存到文件中
select  *  INTO OUTFILE  'c:result.txt'  from table_name where conditions;

 
8.删除表中的重复数据
create table  user_tmp as select distinct * from user; //建立临时表,并复制user表中不重复的数据
drop table user;//删除user表
alert user_tmp rename user;//将user_tmp表重命名为user