欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

转 mysql基本操作_MySQL

程序员文章站 2022-05-21 12:32:25
...
mysql目录

1. 数据库目录

/var/lib/mysql

2. 配置文件

/usr/share/mysql(mysql.server命令及配置文件)

3. 相关命令

/usr/bin(mysqladmin mysqldump等命令)

4. 启动脚本

/etc/rc.d/init.d/(启动脚本文件mysql的目录)

安装

# yum -y install mysql*

# service mysqld start

# netstat -tlpn | grep mysql

# mysql

MySQL默认没有密码,安装完毕增加密码的重要性是不言而喻的

# /usr/bin/mysqladmin -u root password redhat

# mysql

ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)

显示错误,说明密码已经修改

用修改后的密码登录

# mysql -u root -p

Enter password: (输入修改后的密码redhat)

Welcome to the MySQL monitor. Commands end with ; or /g.

Your MySQL connection id is 4 to server version: 4.0.16-standard

Type 'help;' or '/h' for help. Type '/c' to clear the buffer.

mysql>

这是通过mysqladmin命令修改口令,也可通过修改库来更改口令。

启动与停止

1. 启动

MySQL安装完成后启动文件mysql在/etc/init.d目录下,在需要启动时运行下面命令即可

# /etc/init.d/mysqld start

2. 停止

# /usr/bin/mysqladmin -u root -p shutdown

3. 自动启动

1) 察看mysql是否在自动启动列表中

# /sbin/chkconfig --list

2) 把mysql添加到系统的启动服务组里面去

# /sbin/chkconfig -- add mysqld

3) 把mysql从启动服务组里面删除

# /sbin/chkconfig --del mysqld

mysql的常用操作

1. 显示数据库

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| test |

+--------------------+

3 rows in set (0.00 sec)

mysql刚安装完有三个数据库:information_schema、mysql和test。mysql库非常重要,它里面有MySQL的系统信息,我们改密码和新增用户,实际上就是用这个库中的相关表进行操作。

2. 显示数据库中的表

mysql> use mysql; (打开库,对每个库进行操作就要打开此库,类似于foxpro )

Reading table information for completion of table and column names

You can turn off this feature to get a quicker startup with -A

Database changed

mysql> show tables;

+---------------------------+

| Tables_in_mysql |

+---------------------------+

| columns_priv |

| db |

| func |

| help_category |

| help_keyword |

| help_relation |

| help_topic |

| host |

| proc |

| procs_priv |

| tables_priv |

| time_zone |

| time_zone_leap_second |

| time_zone_name |

| time_zone_transition |

| time_zone_transition_type |

| user |

+---------------------------+

17 rows in set (0.01 sec)

3. 显示数据表的结构

describe 表名;

mysql> describe user;

4. 显示表中的记录

select * from 表名

mysql> select * from user;

5. 建库

create database 库名

mysql> create database lifang;

Query OK, 1 row affected (0.01 sec)

6. 建表

use 库名

create table 表名(字段设定列表);

例如:在刚创建的lifang库中建立表name,表中有id(序号,自动增长),xm(姓名),xb(姓别),csny(出身年月)四个字段

mysql> use lifang;

Database changed

mysql> create table name (id int(3) auto_increment not null primary key,xm char(8),xb char(2),csny date);

Query OK, 0 rows affected (0.01 sec)

可以用describe命令察看刚建立的表结构

mysql> describe name

-> ;

+-------+---------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+-------+---------+------+-----+---------+----------------+

| id | int(3) | NO | PRI | NULL | auto_increment |

| xm | char(8) | YES | | NULL | |

| xb | char(2) | YES | | NULL | |

| csny | date | YES | | NULL | |

+-------+---------+------+-----+---------+----------------+

4 rows in set (0.00 sec)

7. 增加记录

mysql> insert into name values('','lifang','female','1984-05-10');

Query OK, 1 row affected, 2 warnings (0.00 sec)

mysql> insert into name values('','fuying','female','1986-07-14');

Query OK, 1 row affected, 2 warnings (0.00 sec)

mysql> insert into name values('','xiaodi','female','1982-12-28');

Query OK, 1 row affected, 2 warnings (0.00 sec)

可用select命令来验证结果

mysql> select * from name;

+----+--------+------+------------+

| id | xm | xb | csny |

+----+--------+------+------------+

| 1 | lifang | fe | 1984-05-10 |

| 2 | fuying | fe | 1986-07-14 |

| 3 | xiaodi | fe | 1982-12-28 |

+----+--------+------+------------+

3 rows in set (0.00 sec)

8. 修改记录

例如将xiaodi的出生年月改为1985-12-28

mysql> update name set csny='1985-12-28' where xm='xiaodi';

Query OK, 1 row affected (0.00 sec)

Rows matched: 1 Changed: 1 Warnings: 0

9. 删除记录

mysql> delete from name where xm='xiaodi';

Query OK, 1 row affected (0.00 sec)

10. 删库和删表

drop database 库名

drop table 表名

mysql> drop table name;

Query OK, 1 rows affected (0.00 sec)

mysql> drop database lifang;

Query OK, 1 rows affected (0.00 sec)

 

增加mysql用户

格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”

例1、 增加一个用户fuyiing密码为redhat,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MySQL,然后键入以下命令

mysql> grant select,insert,update,delete on *.* to fuying@station12 identified by "redhat";

Query OK, 1 rows affected (0.00 sec)

增加的用户是十分危险的,如果知道了fuying的密码,那么他就可以在网上的任何一台电脑上登录你的MySQL数据库并对你的数据为所欲为了,解决办法见例2

例2、 增加一个用户xiaodi密码为redhat,让此用户只可以在localhost上登录,并可以对数据库lifang进行查询、插入、修改、删除的操作(localhost指本地主机,即MySQL数据库所在的那台主机),这样用户即使用知道xiaodi的密码,他也无法从网上直接访问数据库,只能通过 MYSQL主机来操作lifang库

mysql> grant select,insert,update,delete on lifang.* to xiaodi@localhost identified by "redhat";

Query OK, 1 rows affected (0.00 sec)

用新增的用户如果登录不了MySQL,在登录时用如下命令:

# mysql -u fuying -p -h 192.168.0.12 (-h后跟的是要登录主机的ip地址)

备份与恢复

1. 备份

例如:将上例创建的lifang库备份到文件back_lifang中

[root@station12 mysql]# mysqldump -u root -p --opt lifang > back_lifang

Enter password:

[root@station12 mysql]#

2. 恢复

[root@station12 mysql]# mysql -u root -p lifang

Enter password:

[root@station12 mysql]#