Chinaunix首页 | 论坛 | 博客
  • 博客访问: 28427
  • 博文数量: 4
  • 博客积分: 1960
  • 博客等级: 上尉
  • 技术积分: 50
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-05 16:29
文章分类
文章存档

2010年(4)

最近访客

分类:

2010-03-08 15:38:36

1、问题:Error1: 2003:Can't connect to MySQL server on 'localhost'
   解决方法:这个原因是linux的防火墙中没有设置3306的例外。然后运行命令:grant all privileges on *.* to  identified by '你的密
   码' with grant option;
    如果把中间的%换成10.9.68.218 那么结果就是这台mysql数据库仅有10.9.68.218能访问。
 
2、查看mysql中的连接数:
    mysqladmin -uroot -p*(root的密码) processlist
   
3、更改数据库密码:
   /usr/bin/mysqladmin -u root password 'new-password'
 
4、重设密码:
   下面分三步说明操作步骤:
1>.停止MySQL
Linux 下 , 运行killall -TERM mysqld
Windows 下,控制面板-->管理工具-->服务-->MySQL 将其停止。

2>.以安全模式启动MySQL
Linux 下,运行/usr/local/mysql/bin/ mysqld_safe --skip-grant-tables &
Windows 下,在命令行下运行 MySQL 安装目录/bin/ mysqld-nt.exe --skip-grant-tables

3>.进入 MySQL

完成上面两步后,就可以不用密码进入 MySQL 了
Linux/Windows下,MySQL安装目录/bin/mysql -u root -p

 

有时候在连接数据库时,会出现host is not allowed to connect to this mysql server 的错误报告,用root登入还是报这个错。

 

出现这个错误说明服务器不让你登入,必需新建一个账户,然后把你的库的权限赋给这个用户

 

假如Database:Test  
  创建用户:Jacky   密码:   pwd  
  进入Mysql  
   
  >grant   insert,delete,update,select,drop,create   on   Test.*   to   Jacky@"%"   identified   by   "pwd";     

 

 

 

 

 

 

5、常用命令:

 

1>.显示结构或描述信息

显示表的结构

show columns from table_name;


描述表的结构
describe table_name;

2>.创建用户并给予权限

GRANT ALL ON database_name.* TO database_user@HostName IDETIFIED BY 'password';

 

3>.一些有用的SQL命令

清空数据表

truncate table table_name;

 

更改数据表的名称

alter table old_table_name rename new_table_name;

 

在不进数据库的情况下执行 mysql 语句

mysql -u username -pusername database -e "msyql excute sectence";

 

七、更改MySQL目录
   MySQL默认的数据文件存储目录为/var/lib/mysql。假如要把目录移到/home/data下需要进行下面几步:
   1、home目录下建立data目录
   cd /home
   mkdir data
   2、把MySQL服务进程停掉:
   mysqladmin -u root -p shutdown
   3、把/var/lib/mysql整个目录移到/home/data
   mv /var/lib/mysql /home/data/
   这样就把MySQL的数据文件移动到了/home/data/mysql下
   4、找到my.cnf配置文件
   如果/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/下找到*.cnf文件,拷贝其中一个到/etc/并改名为my.cnf)中。命令如下:
   [root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
   5、编辑MySQL的配置文件/etc/my.cnf
   为保证MySQL能够正常工作,需要指明mysql.sock文件的产生位置。 修改socket=/var/lib/mysql/mysql.sock一行中等号右边的值为:/home/mysql/mysql.sock 。操作如下:
   vi  my.cnf    (用vi工具编辑my.cnf文件,找到下列数据修改之)
   # The MySQL server
    [mysqld]
    port   = 3306
    #socket  = /var/lib/mysql/mysql.sock(原内容,为了更稳妥用“#”注释此行)
    socket  = /home/data/mysql/mysql.sock   (加上此行)
   6、修改MySQL启动脚本/etc/rc.d/init.d/mysql
   最后,需要修改MySQL启动脚本/etc/rc.d/init.d/mysql,把其中datadir=/var/lib/mysql一行中,等号右边的路径改成你现在的实际存放路径:home/data/mysql。
   [root@test1 etc]# vi /etc/rc.d/init.d/mysql
   #datadir=/var/lib/mysql    (注释此行)
   datadir=/home/data/mysql   (加上此行)
   7、重新启动MySQL服务
   /etc/rc.d/init.d/mysql start
   或用reboot命令重启Linux
   如果工作正常移动就成功了,否则对照前面的7步再检查一下。

阅读(3931) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

vermouth2010-03-09 10:09:57

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysqld.sock' (2)
最常见的是这个吧?

可可火山2010-03-09 09:58:48

1、问题:Error1: 2003:Can't connect to MySQL server on 'localhost'
   解决方法:这个原因是linux的防火墙中没有设置3306的例外。然后运行命令:grant all privileges on *.* to 'root'@'%' identified by '你的密
   码' with grant option;
    如果把中间的%换成10.9.68.218 那么结果就是这台mysql数据库仅有10.9.68.218能访问。

这个原因解决方法都对不上那~