Chinaunix首页 | 论坛 | 博客
  • 博客访问: 618498
  • 博文数量: 321
  • 博客积分: 4065
  • 博客等级: 上校
  • 技术积分: 3087
  • 用 户 组: 普通用户
  • 注册时间: 2006-02-23 19:04
个人简介

随遇而安

文章分类

全部博文(321)

文章存档

2015年(1)

2014年(1)

2013年(1)

2012年(8)

2011年(47)

2010年(124)

2009年(92)

2008年(24)

2007年(8)

2006年(15)

分类: Mysql/postgreSQL

2006-05-08 22:03:19

Q: 如何登录MySQL
A:

CODE:
使用mysql提供的客户端工具登录
#PATH_TO_MYSQL/bin/mysql -uuser -ppassword dateabase
Q: 忘记MySQL的root密码,怎么修改
A:

CODE:
如果 MySQL 正在运行,首先杀之: killall -TERM mysqld。
启动 MySQL :PATH_TO_MYSQL/bin/mysqld --skip-grant-tables &
就可以不需要密码就进入 MySQL 了。
然后就是
mysql>use mysql
mysql>update user set password=password("new_pass") where user="root";
mysql>flush privileges;
重新杀 MySQL ,用正常方法启动 MySQL
一定注意:很多新手没有用password=password("..."),而是直接password="..."所以改掉密码不好使
Q: 为什么mysqld起来了,却无法登录,提示"/var/lib/mysql/mysql.sock"不存在
A:

CODE:
这种情况大多数是因为你的mysql是使用rpm方式安装的,它会自动寻找 /var/lib/mysql/mysql.sock 这个文件,
通过unix socket登录mysql。
常见解决办法如下:
1、
创建/修改文件 /etc/my.cnf,至少增加/修改一行
[mysql]
[client]
socket = /tmp/mysql.sock
#在这里写上你的mysql.sock的正确位置,通常不是在 /tmp/ 下就是在 /var/lib/mysql/ 下

2、
指定IP地址,使用tcp方式连接mysql,而不使用本地sock方式
#mysql -h127.0.0.1 -uuser -ppassword

3、
为 mysql.sock 加个连接,比如说实际的mysql.sock在 /tmp/ 下,则
#ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock即可
Q: 如何修改mysql用户密码
A:

CODE:
大致有2种方法:
1、
mysql>mysql -uroot -pxxx mysql
mysql>update user set password=password('new_password') where user='user';;
mysql>flush privileges;

2、
格式:mysqladmin -u用户名 -p旧密码 password 新密码
#mysqladmin -uroot -password ab12
注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。
Q: 如何新增一个mysql用户
A:

CODE:
格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码"
例1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MYSQL,然后键入以下命令:
mysql>grant select,insert,update,delete on *.* to test1@"%" Identified by "abc";
但例1增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见例2。
例2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。
mysql>grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc";
如果你不想test2有密码,可以再打一个命令将密码消掉。
mysql>grant select,insert,update,delete on mydb.* to test2@localhost identified by "";
另外,也可以通过直接往user表中插入新纪录的方式来实现。
Q: 如何查看mysql有什么数据库
A:

CODE:
mysql>show databases;
Q: 如何查看数据库下有什么表
A:

CODE:
mysql>show tables;
Q: 如何导出数据
A:

CODE:
有几种方法,如下:
1、使用mysqldump
#mysqldump -uuser -ppassword -B database --tables table1 --tables table2 > dump_data_20051206.sql
详细的参数

2、backup to语法
mysql>BACKUP TABLE tbl_name[,tbl_name...] TO '/path/to/backup/directory';
详细请查看mysql手册

3、mysqlhotcopy
#mysqlhotcopy db_name [/path/to/new_directory]

#mysqlhotcopy db_name_1 ... db_name_n /path/to/new_directory

#mysqlhotcopy db_name./regex/
详细请查看mysql手册

4、select into outfile
详细请查看mysql手册

5、客户端命令行
#mysql -uuser -ppassword -e "sql statements" database > result.txt

以上各种方法中,以mysqldump最常用
Q: 如何在命令行上执行SQL语句
A:

CODE:
#mysql -uuser -ppassword -e "sql statements" database
Q: 如何导入备份出来的文件
A:

CODE:
常见几种方法如下:
1、由mysqldump出来的文件
#mysql -uuser -ppassword [database] < dump.sql

2、文件类型同上,使用source语法
mysql>source /path_to_file/dump.sql;

3、按照一定格式存储的文本文件或csv等文件
#mysqlimport [options] database file1 [file2....]
详细请查看mysql手册

4、文件类型同上,也可以使用load data语法导入
详细请查看mysql手册
 
Q: 如何让我的MySQL支持中文
A:

CODE:
以下十几个相关的链接,包括字符集支持等问题,都可以看看
%3D1%26filter%3Ddigest
%3D1%26filter%3Ddigest
%3D1%26filter%3Ddigest
Q: 如何安装LAMP(Linux+Apache+MySQL+PHP)
A:

CODE:
Q: 如何使用rpm方式安装mysql
A:

CODE:
首先下载合适的rpm包,例如下载了文件 MySQL-5.0.15-0.i386.rpm
用一下方法安装:
#rpm -ivhU MySQL-5.0.15-0.i386.rpm
通常情况下,安装完这个rpm包后,只具备有mysqld服务功能,其它相关的client程序和开发包还需要另外安装
#rpm -ivhU MySQL-devel-5.0.15-0.i386.rpm
#rpm -ivhU MySQL-client-5.0.15-0.i386.rpm
Q: 如何安装已经编译好了的mysql二进制包
A:

CODE:
首先下载合适的二进制包,例如下载了文件 mysql-standard-4.1.13-pc-linux-gnu-i686.tar.gz
#groupadd mysql
#useradd -g mysql mysql
#cd /usr/local
#tar zxf mysql-standard-4.1.13-pc-linux-gnu-i686.tar.gz
#ln -s mysql-standard-4.1.13-pc-linux-gnu-i686 mysql
#cd mysql
#scripts/mysql_install_db --user=mysql
#chgrp -R mysql *
#bin/mysqld_safe --user=mysql &
有什么个性化的配置,可以通过创建 /etc/my.cnf 或者 /usr/local/mysql/data/my.cnf,增加相关的参数来实现。
Q: 如何自己编译mysql
A:

CODE:
以redhat linux 9.0为例:
下载文件 mysql-4.1.13.tar.gz
#tar zxf mysql-4.1.13.tar.gz
#cd mysql-4.1.13
#./configure --prefix=/usr/local/mysql --enable-assembler \
--with-mysqld-ldflags=-all-static --localstatedir=/usr/local/mysql/data \
--with-unix-socket-path=/tmp/mysql.sock --enable-assembler \
--with-charset=complex --with-low-memory --with-mit-threads
#make
#make install
#groupadd mysql
#useradd -g mysql mysql
#chgrp -R mysql /usr/local/mysql/
#/usr/local/mysql/bin/mysqld_safe --user=mysql &
有什么个性化的配置,可以通过创建 /etc/my.cnf 或者 /usr/local/mysql/data/my.cnf,增加相关的参数来实现。
 
Q:字符集相关
A:
一. 显示字符集
mysqladmin -uroot -pUmcc123 variables | grep character

| character_set_client            | latin1                           |
| character_set_connection        | latin1                           |
| character_set_database          | latin1                           |
| character_set_results           | latin1                           |
| character_set_server            | latin1                           |
| character_set_system            | utf8                             |
| character_sets_dir              | /usr/local/share/mysql/charsets/ |

数据库缺省使用latin1 (ISO-8859)


二. 配置字符集

1. 建库时配置字符集

create database testxxx default charset=utf8

3. 建表时配置字符集

CREATE TABLE `t_agent` (
  `ID` smallint(5) NOT NULL
)  DEFAULT CHARSET=utf8 ;

4. 修改字符集

Windows平台
windows下的mysql配置文件是my.ini,一般在c:\windows\my.ini或者c:\winnt\my.ini可以直接在这个文件里面加上
default-character-set=gbk #或gb2312,big5,utf8
然后重新启动mysql
service mysql restart

/etc/init.d/mysql restart
或用其他方法重新启动,就生效了。

[编辑]Unix平台
linux下的mysql配置文件是my.cnf,一般是/etc/my.cnf,如果找不到可以用find命令找一下:
find / -iname my.cnf
在这个文件里面加上
default-character-set=gbk #或gb2312,big5,utf8
然后重新启动mysql

三. 配置排序字符集

myisamchk -r -q --set-character-set=charset
阅读(1787) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~