MySQL简介,安装,简单使用
MySQL wiki
MySQL是世界上最广泛使用的开源关系型数据库(relational database management system),发布于1995年,由瑞典公司MySQLAB开发,现在由oracle公司所有,由c/c++实现,SQL的意思是Structured Query Language。
MySQL提供了多用户(multi-user)对一系列数据库的访问,提供了图形界面的,命令行界面的客户端,下面有命令行界面的介绍。MySQL是Web应用中非常流行的选择,LAMP架构中的M(Linux, Apache, MySQL, Python/php)
MySQL可以单台部署,也可以多服务器部署(muti-server deployment),但注意,就我的理解这里不是集群服务,因为这里是用一台强大的服务器做mater,其他做slave,master用来写,slaves用来读,每台server用同步机制进行同步。这个跟redis的master-slave机制一样,用配置文件去控制
安装
在安装测试使用sphinxSearch(一个开源的full-index search engine)的时候,需要安装mysql做测试,就用如下方式安装了。
MySQL的安装可以从源码编译安装,也可以用linux的包管理系统。
首先我在我的云服务器上(ubuntu系统)用apt-get install安装mysql的server和client。
sudo apt-get install libmysqld-dev sudo apt-get install mysql-client
这里注意:
我在另外的一个阿里云服务器上安装的时候,安装libmysqld-dev就不能正常使用,报着个错,并且按装过程中没有提醒我设置root帐户的密码
Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
然后我安装mysql-server后就正常了,并且在安装过程中有提醒我设置root帐户密码
安装server的过程中会提醒设置管理员root用户密码,推荐设置,root用户可以创建删除普通用户。
启动mysql server后,Linux下使用mysql client如下连接数据库
> mysql db_name
或
> mysql --user=user_name -p db_name
-p 即 --password,像我的root用户就有密码,必须加上-p,不推荐在命令行上直接写出密码,只用-p,shell会提醒在下一行输入。
SQL structured query language wiki
sql是专门为操作关系型数据库而设计的编程语言,诞生于1984年,现在已经是ISO的标准,文件名以.sql结尾,sql包括了数据的插入,查询,更新,删除。也就是我们操作MySQL用的都是SQL语句,当然也可以直接执行一个.sql文件。
一个例子,在MySQL指定库中创建一个table并插入一些数据
mysql server在安装后,会有两个默认的database,mysql和test
下面是一个例子wy.sql, 其在test库中定义了一个名为articles的table,并且插入了一些数据
1 drop table if exists test.articles; 2 create table test.articles 3 ( 4 id integer primary key not null auto_increment, 5 group_id integer not null, 6 date_added datetime not null, 7 title varchar(255) not null, 8 content text not null 9 ); 10 11 insert into test.articles values 12 (1, 1, now(), 'doc one', 'this is my test document one ^_^'), 13 (2, 2, now(), 'doc two', 'this is my test document two ^_^'), 14 (3, 2, now(), 'spring' , 'sprint is beautiful^_^');
我们给test库增加了一个articles表,这个table有5个field,并且插入了一些数据,执行这个wy.sql文件,使用如下mysql命令
mysql -p < wy.sql
现在用client去MySQL数据库中查看,可以发现这个table已经有了,且有我们插入的3条数据。
使用了三个命令
use test; #使用test database show tables; #显示选中库中所有table select * from articles; #显示artibles table中的所有entry