分类: LINUX
2008-04-16 14:10:17
MySQL数据库是一个多用户,多线程的关系型数据库,是一个客户机/结构的应用程序。它是对个人用户和商业用户是免费的.
Mysql数据库具有以下优点:
1.同时访问数据库的用户的数量不受限制
2.可以保存超过5千万条的记录
3.是目前市场上现有数据库产品中运行速度最快的数据库系统
4.用户权限设置简单、有效。
Mysql数据库常用命令:
启动Mysql数据库
C:\>cd Mysql5.0\bin
C:\Mysql5.0\bin>mysqld –install 安装Mysql服务
C:\Mysql5.0\bin>net start mysql 启动Mysql服务
请求的服务已经启动。
连接mysql
用户需要提供Mysql的用户名和密码来连接服务器,如果服务器不是在本机,则还需要一个主机名或IP来指定服务器的位置。
C:\Mysql5.0\bin>mysql -h localhost -u root -p
Enter pass: ****
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6 to server version: 5.0.18-nt
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
使用一条简单的查询语句
mysql> select version(),current_date;
mysql> select version();select now();
新建或删除一个数据库
Mysql>create database mydb;
Mysql> drop database mydb;
打开的数据库的命令
mysql> use mysql
Database changed
查看数据库的命令
mysql> show databases;
查看数据表的详细结构
mysql> desc func;
新建数据库
mysql> create database school;
Query OK, 1 row affected (0.00 sec)
新建表
mysql> create table user01(
-> id varchar(20) NOT NULL,
-> userName varchar(10) NOT NULL,
-> age int(11) default'0',
-> sex char(2) NOT NULL default'm',
-> PRIMARY KEY (id)
-> )TYPE=InnoDB;
Query OK, 0 rows affected, 1 warning (0.02 sec)mysql>desc student;
插入和删除表中的数据
Create table student(stuName varchar(20),age varchar(20),id varchar(20),set0 char(1));
插入
mysql> insert into student(id,stuName) values('1','tomcat');
Query OK, 1 row affected (0.00 sec)
删除
mysql> delete from student where id='1';
Query OK, 1 row affected (0.01 sec)
删除表中所有数据
mysql> truncate table student;
Query OK, 1 row affected (0.01 sec)
删除表
mysql> create table temp(t varchar(1));
Query OK, 0 rows affected (0.00 sec)
mysql> drop table temp;
Query OK, 0 rows affected (0.00 sec)
创建新用户并给予权限
mysql> grant all privileges on *.* to dbuser@localhost identified by '1234'
with grant option;
更改Mysql用户密码
c:\Mysql5.0\bin>mysqladmin -u root -p password 1234
Enter password: ****
备份数据库及表
我们用mysqldump命令来备份数据库
c:\mysql\bin\>mysqldump –u root –p 3306 mysql>d:\backup.sql
执行此语句将把mydb 备份到D盘的backup.sql文件中
备份多个数据库表
c:\mysql\bin\>mysqldump –u root –p 3306 school user01 user >d:\backup.sql
此句的意思是把school库中的user01表和user表的内容和表的定义备份到D盘backup.sql文件中。
备份所有的数据库
c:\myql\bin>mysqldump –u root –p 3306 –all –database>d:backup.sql
还原Mysql数据库
c:\mysql\bin\mysql –u root –p 3306 school
还原其中的一个表
mysql> source d:\books.sql;
ERROR:
Unknown command '\b'.
Query OK, 0 rows affected (0.00 sec)
Query OK, 1 row affected (0.00 sec)
alter table news modify content longtext
alter table news change content content longtext
退出Mysql连接
mysql>quit(exit)
关闭mysql服务
配置数据库(我这里的是 mysql 数据库):
1、在 mysql 中增加一个将用于访问你的数据库的用户名及密码:
/usr/local/mysql/bin/mysql -uroot -p
输入密码,进入 mysql 的管理界面中,然后输入:
grant all on dbname.* to username identified by 'password';
flush privileges;
然后输入 quit 退出 mysql 界面。
2、再一次用新增加的用户名和密码登录试试:
/usr/local/mysql/bin/mysql -uusername -p
如果能正常登录到 mysql 中,说明这个用户名和密码已经生效了。
3、在 mysql 的数据库目录下建立一个以数据库名为目录名的目录,如
cd /usr/local/mysql/data
mkdir dbname
这时可以把以前备份的数据库文件(*.MYD *.MYI *.frm)全部拷到(或上传)这个目录下
上传完后,就修改这个目录(dbname)的属主、目录权限:
chown -R mysql dbname
chgrp -R mysql dbname
chmod 750 dbname
接着进入这个目录,修改这个目录下的文件的权限:
cd dbname
chmod 660 *
重新启动 mysql ,数据库恢复完毕。
service mysqld restart
检查数据库,这时一切应该都正常。
注意,如果没有修改数据库目录下的文件权限,可能会引起不安全的因素。
如果不修改数据库目录的权限,则数据库无法更新、修改,是只能读,用
check table tablename
检查时发现,表是只读的,而用
repair table tablename
则会提示:
Table './dbname/tablename' is marked as crashed and last (automatic?) repair failed
有时还会出现如下错误:
Can't find file: './dbname/tablename.frm' (errno: 13)
象这些情况,都是由于 linux 下的权限引起的,只要把权限改过来后,重新启动一下 mysql 就一切 ok 了!