【5.1】mysql的初识

从上次捣弄bio-linux到现在的mysql构建blast2go本地化,资深菜鸟如我,都被搞的要吐血身亡,借着mysql导数据的功夫,我来整理一下这几天来对mysql的认识。

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。(摘自百度)

1 安装:

mysql的安装我就不说了,因为bio-linux系统自带(多么强大的系统啊,前面的努力都是值得),在终端里里面

sudo apt-get install mysql-server.(论坛里面很多error都是因为没有装这个)

2 登录

登录MySQL的命令是mysql, mysql 的使用语法如下:

mysql [-u username] [-h host] [-p[password]] [dbname]

username 与 password 分别是 MySQL 的用户名与密码,mysql的初始管理帐号是root,没有密码,注意:这个root用户不是Linux的系统用户。MySQL默认用户是root,由于初始没有密码,第一次进时只需键入mysql即可。

[root@localhost local]# mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.0.90-community MySQL Community Edition (GPL)
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
 
mysql>

出现了“mysql>”提示符,恭喜你,安装成功! 增加了密码后的登录格式如下:

mysql -u root -p

Enter password: (输入密码)

其中-u后跟的是用户名,-p要求输入密码,回车后在输入密码处输入密码。

注意:这个mysql文件在/usr/bin目录下,与后面讲的启动文件/etc/init.d/mysql不是一个文件。

3、密码

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

mysqladmin -u root password 'new-password'

格式:mysqladmin -u用户名 -p旧密码 password 新密码 (蓝色的部分为你设定的密码,)

例如  [root@localhost local]# /usr/bin/mysqladmin -u root password 123456
因为开始时root没有密码,所以-p旧密码一项就可以省略了。其中123456为你设定的密码

测试是否修改成功

1)不用密码登录

[root@localhost local]# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

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

2)用修改后的密码登录

[root@localhost local]# mysql -u root -p
Enter password:   (输入你设定的密码123456)
mysql>
成功!

4、启动与停止

启动

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

[root@localhost init.d]# /etc/init.d/mysql start

停止

mysqladmin -u root -p shutdown

停止后启动可能出现的问题

在关闭mysql服务后重新启动时遇到这个错误

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

使用如下命令可以启动

[root@localhost local]# sudo /etc/init.d/mysql restart
MySQL manager or server PID file could not be found!       [FAILED]
Starting MySQL.                                      [  OK  ]

 

5 创建、删除和选择数据库

   MySQL提供了三条数据库级的语句,它们分别是: CREATE DATABASE 用于创建数据库,DROP DATABASE 用于删除数据库,USE 用于选择缺省数据库。

5.1 CREATE DATABASE 语句

创建一个数据库很容易;只要在CREATE DATABASE 语句中给出其名称即可:

CREATE DATABASE db_name

其中限制条件是该数据库的名称必须是合法的,该数据库必须不存在,并且您必须有足够的权限来创建它。   

5.2 DROP DATABASE 语句

   删除数据库就像创建它一样容易,假如有权限,执行下列语句即可:

DROP DATABASE db_name

请注意,不要乱用DROP DATABASE 语句,它将会删除数据库及其所有的表。在删除了一个数据库后,该数据库就永远没有了。换句话说,不要仅为了看看这条语句如何工作就试着执行该语句。如果管理员已经正常完成了数据库备份,那么删除的数据库可能还可以恢复。

  请注意,数据库是由数据目录中的一个目录表示的。如果在该目录中放置了一些非表的数据文件,它们是不会被DROP DATABASE 语句删除的。此时,该数据库目录自身也不被删除。

5.3 USE 语句

USE 语句选择一个数据库,使其成为服务器的给定连接的缺省(当前)数据库:

USE db_name

必须对数据库具有某种访问权限,否则不能使用它。为了使用数据库中的表而选择该数据库实际上不是必须的,因为可以利用db_name.tbl_name 形式来引用它的表。但是,不必指定数据库限定词引用表要方便得多。选择一个缺省数据库并不代表在连接的持续时间内它都必须是缺省的。可发布任意数目的USE 语句在数据库之间进行任意地切换,只要具有使用它们的权限即可。选择一个数据库也不限制您只使用该数据库中的表。您仍然可以通过用数据库名限定表名的方法,引用其他数据库中的表。

在服务器的连接终止时,服务器关于缺省数据库的所有记忆都消失了。即,如果您再次连接到该服务器,它不会记住以前您所选择的数据库。事实上,假定MySQL是多线程的,可通过一个用户处理多个连接,用户可以按任何顺序连接或断开,让服务器对缺省数据库进行记忆的想法也是没有意义的。在这个环境中,“以前选择的数据库”这句话指什么并不清楚。

这里是一个广告位,,感兴趣的都可以发邮件聊聊:tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn