Home  >  Article  >  Database  >  linux 下mysql一些基本操作

linux 下mysql一些基本操作

WBOY
WBOYOriginal
2016-06-07 15:39:59980browse

MySQL数据库常用操作 1、显示数据库 show databases; 2、选择数据库 use 数据库名; 3、显示数据库中的表 show tables; 4、显示数据表的结构 describe 表名; 5、显示表中记录 SELECT * FROM 表名 6、建库 create database 库名; 7、建表 create table 表名 (

MySQL数据库常用操作

1、显示数据库

<span> show databases;</span>

2、选择数据库

<span><span>use</span> 数据库名;</span>

3、显示数据库中的表

<span>show tables;</span>

4、显示数据表的结构
 

<span>describe 表名;</span>

 

5、显示表中记录
 

<span><span>SELECT</span> <span>*</span> <span>FROM</span> 表名</span>

 


6、建库

<span> <span>create</span> database 库名;</span>

 

7、建表
 

linux   下mysql一些基本操作

<span><span>create</span> <span>table</span><span> 表名 (字段设定列表);

mysql</span><span>></span> <span>create</span> <span>table</span><span> name(
    </span><span>-></span> id <span>int</span> auto_increment <span>not</span> <span>null</span> <span>primary</span> <span>key</span><span> ,
    </span><span>-></span> uname <span>char</span>(<span>8</span><span>),
    </span><span>-></span> gender <span>char</span>(<span>2</span><span>),
    </span><span>-></span><span> birthday date );
Query OK, </span><span>0</span> rows affected (<span>0.03</span><span> sec)

mysql</span><span>></span><span> show tables;
</span><span>+</span><span>--</span><span>----------------+</span>
<span>|</span> Tables_in_userdb <span>|</span>
<span>+</span><span>--</span><span>----------------+</span>
<span>|</span> name             <span>|</span>
<span>+</span><span>--</span><span>----------------+</span>
<span>1</span> row <span>in</span> <span>set</span> (<span>0.00</span><span> sec)

mysql</span><span>></span><span> describe name;
</span><span>+</span><span>--</span><span>--------+---------+------+-----+---------+----------------+</span>
<span>|</span> Field    <span>|</span> Type    <span>|</span> <span>Null</span> <span>|</span> <span>Key</span> <span>|</span> <span>Default</span> <span>|</span> Extra          <span>|</span>
<span>+</span><span>--</span><span>--------+---------+------+-----+---------+----------------+</span>
<span>|</span> id       <span>|</span> <span>int</span>(<span>11</span>) <span>|</span> NO   <span>|</span> PRI <span>|</span> <span>NULL</span>    <span>|</span> auto_increment <span>|</span>
<span>|</span> uname    <span>|</span> <span>char</span>(<span>8</span>) <span>|</span> YES  <span>|</span>     <span>|</span> <span>NULL</span>    <span>|</span>                <span>|</span>
<span>|</span> gender   <span>|</span> <span>char</span>(<span>2</span>) <span>|</span> YES  <span>|</span>     <span>|</span> <span>NULL</span>    <span>|</span>                <span>|</span>
<span>|</span> birthday <span>|</span> date    <span>|</span> YES  <span>|</span>     <span>|</span> <span>NULL</span>    <span>|</span>                <span>|</span>
<span>+</span><span>--</span><span>--------+---------+------+-----+---------+----------------+</span>
<span>4</span> rows <span>in</span> <span>set</span> (<span>0.00</span><span> sec)

注: auto_increment 自增
     </span><span>primary</span> <span>key</span>    主键</span>

linux   下mysql一些基本操作

 


8、增加记录

<span> <span>insert</span> <span>into</span> name(uname,gender,birthday) <span>values</span>(<span>'</span><span>张三</span><span>'</span>,<span>'</span><span>男</span><span>'</span>,<span>'</span><span>1971-10-01</span><span>'</span>);</span>

 

9、修改记录
 

<span><span>update</span> name <span>set</span> birthday<span>=</span><span>'</span><span>1971-01-10</span><span>'</span> <span>where</span> uname<span>=</span><span>'</span><span>张三</span><span>'</span>;</span>

 

10、删除记录
 

<span><span>delete</span> <span>from</span> name <span>where</span> uname<span>=</span><span>'</span><span>张三</span><span>'</span>;</span>

 

11、删除表
 

<span><span>drop</span> <span>table</span> 表名</span>

 

12、删除库

<span> <span>drop</span> <span>database</span> 库名;</span>

 

13、备份数据库
 

<span>mysqldump <span>-</span>u root <span>-</span>p <span>--</span><span>opt 数据库名>备份名; //进入到库目录</span></span>

 

14、恢复
 

<span>mysql <span>-</span>u root <span>-</span>p 数据库名<span>备份名; <span>//</span>恢复时数据库必须存在,可以为空数据库</span></span>

 

15、数据库授权

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

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

<span> mysql<span>></span> <span>grant</span> <span>select</span>,<span>insert</span>,<span>update</span>,<span>delete</span> <span>on</span> <span>*</span>.<span>*</span> <span>to</span> user001@"<span>%</span>" Identified <span>by</span> "<span>123456</span>";</span>

 

例2、增加一个用户user002密码为123456,让此用户只可以在localhost上登录,也可以设置指定IP,并可以对数据库test进行查询、插入、修改、删除的操作 (localhost指本地主机,即MySQL数据库所在的那台主机)

        //这样用户即使用知道user_2的密码,他也无法从网上直接访问数据库,只能通过MYSQL主机来操作test库。
        //首先用以root用户连入MySQL,然后键入以下命令:

<span>  mysql<span>></span><span>grant</span> <span>select</span>,<span>insert</span>,<span>update</span>,<span>delete</span> <span>on</span> test.<span>*</span> <span>to</span> user002<span>@localhost</span> identified <span>by</span> "<span>123456</span>";</span>

 

注: 其次也可以采用修改表的方式,处理用户的登录方式:

数据库: Mysql
表:      User

修改:   User表中的Host列的值来现实登录入口



16、linux下mysql.h:没有那个文件或目录

缺少libmysqlclient-dev,OK安装就是了,apt-get installlibmysqlclient-dev

 

17、linux下如何卸载mysql

首先使用命令rpm -qa | grep -i mysql  会出来mysql的安装版本

假如出现的版本是MySQL-server-community-5.0.90-0.rhel4

下一步使用命令rpm -e MySQL-server-community-5.0.90-0.rhel4

如果什么都不出现,表明已经卸载成功。

在执行后要是提示:error: Failed dependencies:
libmysqlclient.so.15 is needed by (installed) amarok-1.4.8-1.fc7.i386
libmysqlclient.so.15(libmysqlclient_15) is needed by (installed) amarok-1.4.8-1.fc7.i386

那么说明其中有些是dependence关系。那么,我们将它们干脆一次性干掉。

执行完整卸载命令:rpm -e amarok-1.4.8-1.fc7.i386 mysql-libs-5.0.45-6.fc7


 18、linux下查看mysql字符集

show variables like 'character_set_%';

 

19、使用C语言访问MYSQL数据

连接例程
用C语言连接MYSQL数据库包含两个步骤:
(1)初始化一个连接句柄结构
(2)实际进行连接
首先使用mysql_init来初始化连接句柄
#include
MYSQL *mysql_init(MYSQL *);
通常你把NULL给这个例程,它会返回一个指向新分配的连接句柄结构的指针。如果你传递一个
已有的结构,它将被重新初始化。这个例程在出错时返回NULL。
目前为止,你只是分配和初始化了一个结构。你仍然需要使用mysql_real_connect来向一个
连接提供参数:

MYSQL *mysql_real_connect(MYSQL *connection,

const char *server_host,

const char *sql_user_name,

const char *sq_password,

const char *db_name,

unsigned int port_number,

const char *unix_socket_name,

unsigned int flags);

指针connecton必须指向已经被mysql_init初始化过的结构。

server_host既可以是主机名,也可以是IP地址。

sql_username和sql_password的含义和它们的字面含义一样,如果登录名为NULL,则假设登录名为当前linux用户的登录ID,如果密码为NULL,你将只能访问服务器上无需密码就可访问的数据,密码会在通过网络传输前进行加密。

port_number和unix_socket_name应该分别为0和NULL,除非你改变了MYSQL安装的默认配置。

如果无法连接,将返回NULL。mysql_error函数可以提供有帮助的信息。

使用完连接后,通常在程序退出时,调用mysql_close:

void mysql_close(MYSQL *connection);

这将关闭连接,如果连接是由mysql_init建立的,MYSQL结构会被释放,指针将会失效并无法再次使用。

 

在C应用程序中提取数据一般需要下面4个步骤:

(1)执行查询

(2)提取数据

(3)处理数据

(4)必要的清理工作

你将使用mysql_query来发送SQL语句,然后使用mysql_store_result或mysql_use_result来提取数据,然后使用mysql_fetch_row来处理数据,最后使用mysql_free_result来释放查询占用的内存资源。

 

 

19、mysql创建用户

我们可以针对不同的机器来创建用户,并给他们分配不同的连接权限,特别的,出于安全考虑,我们只允许root用户通过本地机器连接。

我们将创建一个拥有相当广泛权限的新用户rick,rick能使用3种不同的方法进行连接:

(1)从本地机器连接。

(2)从IP地址192.168.0.0~192.168.0.255范围内的任何机器连接

(3)从wiley.com域中任何机器连接。

最安全最简单的方法是创建3个用户,他们分别从3个不同的地点进行连接。如果愿意,我们甚至可以根据他们从何处连接给他们设置3个不同的密码。

以root身份连接到MYSQL,然后依次执行如下操作:

(1)为rick创建一个本地登录:

mysql> grant all on *.* to rick@localhost identified by 'secretpassword';

(2)然后创建一个来自C类子网192.168.0的登录。注意我们必须用单引号来保护IP范围,并使用掩码/255.255.255.0来确定允许的IP范围:

mysql>grant all on *.* to rick@'192.168.0.0/255.255.255.0' identified by 'secretpassword';

(3)最后创建一个登录,让rick能从wiley.com域中的任何机器登录

mysql> grant all on *.* to rick@'%.wiley.com' identified by 'secretpassword';

(4)现在我们再次查看user表来核对条目:

mysql>select user,host,password from mysql.user;

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn