mysql学习笔记...
时间:2010-08-15 来源:plo154100
一:安装后的配置
文件目录:
数据库目录
/var/lib/mysql/
配置文件
/usr/share/mysql(mysql.server命令及配置文件)
相关命令
/usr/bin(mysqladmin mysqldump等命令)
启动脚本
/etc/rc.d/init.d/mysqld(启动脚本文件mysql的目录)
启动:
su - mysql
/etc/rc.d/init.d/mysqld start
注:我的是mysqld,也可能是mysql
获取信息:
$ mysql -u root mysql
注:如果你得到一些信息,然后是mysql>提示符,说明已经进入了。输入\s可以得到更多信息
$ mysqladmin -u root version
注:查看版本号
修改密码:
$ mysqladmin -u root password newpassword
注:newpassword便是新密码,刚开始的时候默认是无密码的。但是这种修改密码的方法不安全
因为终端会有记录,留在shell历史中。更好的方法就是通过mysql控制台,使用sql语句。
$ mysql -u -root
mysql> SET password=PASSWORD('newpassword');
注:newpassword的位置输入你的密码。下面查看密码。
mysql>SELECT user, host, password FROM mysql.user
+------+-----------+-------------------------------------------------------+
| user | host | password |
+------+-----------+-------------------------------------------------------+
| root | localhost | *41B6A162BA4FE528AE031B240564968C3EDB4A70 |
| doa | % | *41B6A162BA4FE528AE031B240564968C3EDB4A70 |
+------+-----------+-------------------------------------------------------+
2 rows in set (0.00 sec)
注:这显示的是我电脑里面的密码。下面讲解如何删除密码。
mysql> DELETE FROM mysql.user WHERE user !='root';
注:将删除非root用户
mysql> DELETE FROM mysql.user WHERE host !='localhost';
注:将删除非本机用户。
mysql> eixt;
注:退出。或者quit; 或者\q
创建用户:
当然你可以用root账户登录,但这不是一个好选择。需要创建一个普通用户来为日常使用。
在此将创建一个拥有广泛权限的用户 doa。doa有三种方式进行链接。
1.从本地机器连接
2.从IP地址在192.168.0.0 —>192.168.0.255范围内的任何机器进行链接
3.从wiley.com域中的任何机器链接。
mysql>GRANT ALL ON *.* TO doa@localhost IDENTIFIED BY "password";
mysql>GRANT ALL ON *.* TO doa@'192.168.0.0/192.168.0.255' IDENTIFIED BY "password";
mysql>GRANT ALL ON *.* TO doa@'wiley.com' IDENTIFIED BY "password";
注: grant 是创建命令。ALL代表所有权限。ON *.* 使用了通配符,说明权限作用在所有的文件
上。IDENTIFIED BY "password" 设置密码为pssword。
二:MySQL管理
1.myisamchk
作用:
为了检查/修复MyISAM表(.MYI和.MYD)
何时使用:
如果你使用myisamchk修复或优化表,你必须总是保证mysqld服务器不在使用表(如果
你正在使用--skip-locking,这也适用)。如果你不停掉mysqld,在你运行myisamchk前,你至少
应该做一个mysqladmin flush-tables。
在服务器启动时检查表是一个好主意。
语法:
shell> myisamchk [options] tbl_name
事例:
myisamchk /path/to/datadir/*/*.MYI
myisamchk -d tbl_name
以“描述模式”运行myisamchk,生成你的表的描述。如果你用--skip-locking选项启动MySQL
服务器,myisamchk可以当它运行时报告被一个更新的表的错误。然而,既然在描述模式中
myisamchk不改变表,没有破坏数据的任何风险。
myisamchk -d -v tbl_name
为了生成更多关于myisamchk正在做什么的信息,加上-v告诉它以冗长模式运行。
myisamchk -eis tbl_name
仅显示一个表最重要的信息。因为必须读取整个表,它很慢。
myisamchk -eiv tbl_name
这类似-eis,只是告诉你正在做什么。
2.mysql命令
作用:
这是MySQL主要的并且唯一的完全世命令行工具。
事例:
$mysql -u -doa -p table_name
注:-p让程序提示你输入密码
$mysql -u -doa -p table_name < sqlcommands.sql
注:从一个文件中读取命令
3.mysqladmin
作用:
进行快速管理的工具
语法:
shell> mysqladmin [OPTIONS] command [command-option] command ...
详细参数见mysqladmin --help
4.mysqlbug
作用:
生成一个用于发送给MySQL维护者的错误报告。
5.mysqldump
作用:
允许你以sql命令集的形式将部分或整个数据库导出到一个单独文件中。可用来备份。
事例:
mysqldump -u root -p mysql >mysql.dump
6.mysqlimport
作用:
从输入文件中读取大量数据。一般读取由mysqldump创建的文件,当然足够耐心或者形式所迫的
话也可以自己创建。
7.mysqlshow
作用:
提供关于你的MySQL安装及其组成数据库的的快速信息
事例:
mysqlshow -u root -p
注:列出所有可用的数据库。
8.grant命令
作用:
创建用户并赋予权限
格式:
grant <privilege> on <object> to <user> [identified by user-password] [ with grant] ;
解释:
<privilege>的权限有
alter 改变表格和索引
create 创建数据库和表格
delete 从数据库中删除数据
drop 删除数据库和表格
index 管理索引
insert 在数据库中插入数据
select 提取数据
update 修改数据
all 以上所有
<object>格式为databasename.tablename,在此可以使用unix通配符*,如*.*
<user>事例为doa@localhost,在此可以使用sql的通配符%,如doa@'%'
identified by 是可选的,每次都设定密码是个好主意。
9.revoke
作用:
剥夺管理员权限,但是不能删除用户。
语法:
revoke <privilege> on <object> to <user> ;
注:这只是剥夺权限,不是删除用户。删除可以用下列命令:
mysql>use mysql
mysql>DELETE FROM user WHERE user ="doa"
mysql>FLUSH PRIVILEGES;
注:delete和grant,revoke不属于同一范畴。delete是sql语法,grant,revoke是mysql命令
mysql里面可以允许使用sql语法。对于grant,revoke,use命令是没有必要的,因为mysql知
道你想操作权限表。
10.修改密码update
语法:
UPDATE user SET password = password('newpassword') WHERE user = 'doa';
11.创建数据库create
语法:
mysql> CREATE DATABASE newDatabase;
mysql> use newDatabase
12.创建表格create
语法;
CREATE TABLE table_name (
column_name type [ NULL | NOT NULL] [auto_increment] [PRIMARY KEY],
[...]
[PRIMARY KEY (column_name [, ...]) ]
);
事例:
CREATE TABLE children (
childno int(11) NOT NULL auto_increment,
fname varchar(13),
age int(11),
PRIMARY KEY (childno)
);
INSERT INTO children VALUES (5, 'Jenny', 17) ;
INSERT INTO children VALUES (2, 'DOA1', 12) ;
INSERT INTO children VALUES (3, 'DOA2', 17) ;
INSERT INTO children VALUES (4, 'DOA3', 17) ;
解释:
auto_increment 自动加一
NULL 未知的,无关的
PRIMARY KEY 主键
三:图形化工具
continue。。。。