mysql日常操作
时间:2010-09-06 来源:kennychang05
mysql>grant select,insert,update,delete on *.* to user_1@"%" 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 user_2@localhost 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;
Connection id: 38 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%';
mysql> set character_set_connection=utf8;
mysql> show variables like 'char%'; |
mysql> show variables like 'datadir%'; +---------------+----------------+ | Variable_name | Value | +---------------+----------------+ | datadir | /var/db/mysql/ | +---------------+----------------+ 1 row in set (0.01 sec) |