Linux数据库服务器
一、mysql数据库的安装
确保安装gcc(开发工具)
#groupadd mysql
#useradd -g mysql mysql
#cd /usr/local
# tar -zxvf mysql-5.0.37-linux-i686-glibc23.tar.gz
# ln -s mysql-5.0.37-linux-i686-glibc23 mysql //创建别名
#cd mysql
#scripts/mysql_install_db --user=mysql //
#chown -R root .
#chown -R mysql data
#chgrp -R mysql .
#bin/mysqld_safe --user=mysql & //
#cd /root
#vi .bash_profile
**add the follow data**
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin
#logout
**login**
# mysqladmin -u root password 123456
#cd /usr/local/mysql
#cp support-files/mysql.server /etc/rc.d/init.d/mysqld
#/etc/rc.d/init.d/mysqld start
二、mysql数据库的启动、重启和停止
#/etc/rc.d/init.d/mysqld start
******************************************************************
三、mysql数据库的登录
mysql 命令
#mysql [-u username] [-h host] [-p[password]] [dbname]
username 与 password 分别是 mysql 的用户名与密码,mysql的初始管理帐号是root,没有密码。
注意:这个root用户不是Linux的系统用户。mysql默认用户是root,由于初始没有密码,第一次进时只需键入mysql即可。
# mysql –u root –p
******************************************************************
四、修改登录密码
mysql默认没有密码,安装完毕增加密码的重要性是不言而喻的。
mysqladmin命令
#mysqladmin -u 用户名 -p旧密码 password 新密码
示例:
1、给root加个密码123456.
键入以下命令 :
# mysqladmin -u root password 123456
注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。
******************************************************************
五、mysql的常用操作
注意:MySQL中每个命令后都要以分号;结尾.
1、显示数据库
mysql> show databases;
+————————————-+
| Database |
+————————————-+
| mysql |
| test |
+———-—————————+
2 rows in set (0.01 sec)
2、显示数据库中的表
mysql> use mysql;
//打开库,对每个库进行操作就要打开此库,类似于SQL Server
Database changed
mysql> show tables;
+———————–+
| Tables_in_mysql|
+———————–+
| columns_priv |
| db |
| func |
| host |
| tables_priv |
| user |
+———————–+
6 rows in set (0.01 sec)
3、显示数据表的结构:
mysql> describe 表名;
4、显示表中的记录:
mysql> select * from 表名;
例如:显示mysql库中user表中的记录。
mysql> select * from user;
5、建库:
mysql>create database 库名;
//值得注意的是该处的sql命令都区分大小写
例如:创建数据库student
mysql> create database student;
6、建表:
mysql> use 库名;
mysql> create table 表名 (字段设定列表);
例如:在刚创建的student库中建立表sinfo,表中有id(序号,自动增长),name(姓名),sex(性别),birth(出身年月)四个字段
mysql> use student;
mysql>create table sinfo(id int(3) auto_increment primary key, name char(8) , sex char(2), birth date);
可以用describe命令察看刚建立的表结构。
mysql> describe sinfo;
7、增加记录
例如:增加几条相关记录。
mysql>insert into sinfo(name,sex,birth) values('Hellon', '女', '1984-1-1');
mysql>insert into sinfo(name,sex,birth) values('Bill','男', '1985-1-2');
可用select命令来验证结果.
mysql> select * from sinfo;
8、修改记录
mysql> update sinfo set id=2 where name='chris';
9、删除记录
mysql> delete from sinfo where id=1;
10、删库和删表
drop database 库名;
drop table 表名;
******************************************************************
六、备份与恢复
1、备份
例如:将上例创建的student库备份到文件student_bak中
# cd /var/lib/mysql //数据库存放目录
# mysqldump [-u root -p] --opt student > student_bak
2、恢复
# mysql [-u root –p] abc < student_bak
//数据库abc得存在
******************************************************************
七、创建mysql用户
grant命令
格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"
示例:
1、增加一个用户user1密码为123456,让此用户只可以在localhost上登录,并可以对数据库student进行查询操作(localhost指本地主机,即mysql数据库所在的那台主机),这样用户即使知道user1的密码,他也无法从网上直接访问数据库,只能通过 mysql主机来操作student库。首先用以root用户连入mysql,然后键入以下命令:
mysql>grant select on student.* to user1@localhost identified by "123456";
2、增加一个用户user2密码为123456,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令:
mysql> grant select,insert,update,delete on *.* to user2@"%" identified by "123456";
注意:
例2增加的用户是十分危险的,如果知道了user2的密码,那么他就可以在网上的任何一台电脑上登录你的mysql数据库并对你的数据为所欲为了。
用新增的用户登录mysql,应采用如下命令:
#mysql -u username -p -h x.x.x.x
// username登录主机的用户名
// x.x.x.x登录主机的ip地址