Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1848883
  • 博文数量: 293
  • 博客积分: 10127
  • 博客等级: 上将
  • 技术积分: 3029
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-12 19:05
文章分类

全部博文(293)

文章存档

2011年(11)

2010年(282)

我的朋友

分类: Mysql/postgreSQL

2010-09-06 19:59:01

MySQL的初始管理账号是root,没有密码。(注意:这个root用户不是Linux的系统用户)。MySQL默认用户是root,由于初始没有密码,第一次进入时只需输入mysql即可。
 
1、修改MySQL root密码
/usr/local/mysql/bin/mysqladmin -u root password 'password' 其中不包括引号''!!
 
2、启动与停止
/etc/init.d/mysqld start|stop|restart
service mysqld start|stop|restart
/usr/local/mysql/bin/mysqladmin -uroot -p shutdown
 
3、登录MySQL
登录MySQL的命令是mysql,mysql的使用语法如下:
mysql [-u username] [-h host] [-p password] [dbname]
 
/usr/local/mysql/bin/mysql -u root -p
Enter password:(输入密码)
 
4、用户管理
4.1增加用户
格式: grant select on 数据库.* to 用户名@登录主机 identified by "密码"
 
例1. 增加一个用户user_1密码为123,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户登录MySQL,然后输入以下命令:
mysql>grant select,insert,update,delete on *.* to " identified by "123"
例1增加的用户是十分危险的,如果知道了user_1的密码,那么他就可以在网上的任何一台电脑上登录你的MySQL数据库并对你的数据为所欲为了,解决方法见例2。
例2. 增加一个用户user_2密码为123,让此用户只可以在localhost上登录,并可以对数据库aaa进行查询、插入、修改、删除的操作(localhost指本地主机,即MySQL数据库所在的那台主机),这样用户即使知道了user_2的密码,也无法从网上直接访问数据库,只能通过MySQL主机来操作aaa库。输入的命令如下:
mysql> grant select,insert,update,delete on aaa.* to identified by "123";
 
用新增的用户如果登录不了MySQL,在登录时输入如下命令:
mysql -u user_1 -p -h 192.168.113.50  (-h后跟的是要登录主机的ip地址)
 
4.2修改密码
/usr/local/mysql/bin/mysqladmin -u root -p'old-password' password 'new-password'
格式:mysqladmi -u 用户名 -p旧密码 password 新密码
注,密码都不包括引号''
 
例一、给root改密码
/usr/local/mysql/bin/mysqladmin -uroot -p123456 password 123
如果是初始化时root密码为空,那-p旧密码一项可以省略。
 
4.3.1 mysql常用操作
注意: MySQL中每个命令后都要以分号(;)结尾。
1、显示数据库
mysql>show databases;
2、显示数据库中的表
mysql>use mysql;(打开库)
mysql>show tables;
3、显示数据表的结构
mysql>desc 表名;            (desc是describe简写)
4、显示表中的记录
mysql>select * from 表名;
5、建库
mysql>create database 库名;
6、建表
mysql>use 库名;
mysql>create table 表名(字段设定列表);
7、删库和删表
drop database 库名;
drop table 表名;
 
4.3.2 备份与恢复
1、备份
例如,将aaa库备份到文件back_aaa中
shell>cd /var/lib/mysql
shell>mysqldump -u root -p --opt   aaa > back_aaa
2、恢复
mysql -u root -p ccc < back_aaa
 
4.3.3 更改MySQL目录
MySQL默认的数据文件存储目录为/var/lib/mysql.假如要把目录移到/home/data下需要进行下面几步:
(1)在home目录下建立data目录:
cd /home
mkdir data
(2)把MySQL服务进程停掉:
mysqladmin -uroot -p shutdown
(3)把/var/lib/mysql整个目录移到/home/data:
mv /var/lib/mysql /home/data/
(4)编辑/etc/my.cnf配置文件,为了保证MySQL能够正常工作,需要指明mysql.sock文件的产生位置。修改socket=/var/lib/mysql/mysql.sock一行中等号右边的值为/home/data/mysql/mysql.sock.操作如下:
vi /etc/my.cnf
#The MySQL server
[mysqld]
port=3306
#socket=/var/lib/mysql/mysql.sock(原内容,为了更稳妥用“#”注释此行)
socket=/home/data/mysql/mysql.sock(加上此行)
(5)修改MySQL启动脚本/etc/rc.d/init.d/mysql ,把其中datadir=/var/lib/mysql一行中,等号右边的路径改成你现在的实际存放路径/home/data/mysql;
vi /etc/rc.d/init.d/mysql
#datadir=/var/lib/mysql(注释此行)
datadir=/home/data/mysql(加上此行)
(6)重新启动MySQL服务:
/etc/rc.d/init.d/mysql start
 
注意:更改MySQL数据目录还有一个更好更简便的方法,就是使用符号链接,操作如下,
(1)首先停止MySQL,将/var/lib/mysql数据目录移动到新目录下,
/etc/rc.d/init.d/mysql stop
mv /var/lib/mysql /home/data/
(2)建立符号链接
ln -s /home/data/mysql /var/lib/mysql
(3)启动MySQL即可
/etc/rc.d/init.d/mysql start
 
 
一些mysql使用技巧:
(1)mysql查看所有用户
mysql>select user,host,password from mysql.user;
注意,mysql的各种信息都可以从"mysql"系统库中得到。
 
(2)status查看数据库状态信息
 

 mysql> status;
--------------
mysql  Ver 14.14 Distrib 5.1.49, for portbld-freebsd8.1 (i386) using  5.2

Connection id:          38
Current database:       gamedb
Current user:          
SSL:                    Not in use
Current pager:          more
Using outfile:          ''
Using delimiter:        ;
Server version:         5.1.50-log FreeBSD port: mysql-server-5.1.50
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    latin1
Db     characterset:    utf8
Client characterset:    latin1
Conn.  characterset:    latin1
UNIX socket:            /tmp/mysql.sock
Uptime:                 1 day 11 hours 46 min 52 sec

Threads: 2  Questions: 319  Slow queries: 0  Opens: 44  Flush tables: 1  Open tables: 13  Queries per second avg: 0.2

(3)set改变变量的值

 mysql> show variables like 'char%';
+--------------------------+----------------------------------+
| Variable_name            | Value                            |
+--------------------------+----------------------------------+
| character_set_client     | utf8                             |
| character_set_connection | latin1                           |
| character_set_database   | utf8                             |
| character_set_filesystem | binary                           |
| character_set_results    | latin1                           |
| character_set_server     | latin1                           |
| character_set_system     | utf8                             |
| character_sets_dir       | /usr/local/share/mysql/charsets/ |
+--------------------------+----------------------------------+
8 rows in set (0.01 sec)

mysql> set character_set_connection=utf8;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'char%';
+--------------------------+----------------------------------+
| Variable_name            | Value                            |
+--------------------------+----------------------------------+
| character_set_client     | utf8                             |
| character_set_connection | utf8                             |
| character_set_database   | utf8                             |
| character_set_filesystem | binary                           |
| character_set_results    | latin1                           |
| character_set_server     | latin1                           |
| character_set_system     | utf8                             |
| character_sets_dir       | /usr/local/share/mysql/charsets/ |
+--------------------------+----------------------------------+
8 rows in set (0.00 sec)

(4)查看mysql datadir的另类方法
 
 mysql> show variables like 'datadir%';
+---------------+----------------+
| Variable_name | Value          |
+---------------+----------------+
| datadir       | /var/db/mysql/ |
+---------------+----------------+
1 row in set (0.01 sec)
阅读(503) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~