MySQL是一个常用的关系型数据库管理系统,特点是体积小、速度快、而且社区版免费开源,所以在中小型网站中被大量使用。甚至形成了形成了免费的LAMP(linux、Apache/Nginx、MySQL、PHP/Python/Perl)组合。
对于一个数据库的初学者来讲,MySQL绝对是一个好的学习环境。关系型数据库的相关的知识,在这里几乎都能接触到,而且性能还很好,使用安装也都很友好简单,我们就来简单介绍一下。
安装
以Ubuntu 为例,安装很简单,输入以下命令就可以,期间需要输入MySQL的root密码:
1 | sudo apt-get update |
安装成功之后我们就可以连接一下数据库来看看,命令中-u表示登陆的用户名,-p表示对应的用户密码。
1
mysql -u root -p
输入密码后,就会进入MySQL数据库的,我们可以看看它的状态,里面有现在的版本,当前的用户、数据库的字符集等等,如图。
1 | status; |
如果你想退回到操作系统的话,也很简单:
1 | exit #或者quit都行。 |
设置
很多时候我们在服务器端使用MySQL的时候需要设置MySQL的自启动,这个在Ubuntu下很简单:
1
update-rc.d mysql defaults
设置完了,可以重启动一下主机试试看。
同样的移除这个自启动设置也很简单。
1
update-rc.d mysql remove
另外MySQL的主要配置信息在/etc/mysql/my.cnf文件中,可以根据自己的情况进行设置例如数据存储目录、端口信息、最大连接数、日志大小等等。
使用
- MySQL的启动、停止、重启推荐有两种方式:
1
2
3sudo /etc/init.d/mysql start
sudo /etc/init.d/mysql stop
sudo /etc/init.d/mysql restart
或者
1
2
3 service mysql start
service mysql stop
service mysql restart
进入MySQL后,可以先来了解一下目前有哪些数据库,用如下命令,就可以查看当前的数据库。
1
2mysql -u root -p
show databases;数据的切换使用use命令,我们可以切换到默认的mysql数据库看看。
1
use mysql;
看看现在库里面有哪些表。
1
show tables;
创建一个数据库。
1
2create database test;
show databases;在test数据库中建一个表,看看结果。
1
2
3
4use test;
show tables;
create table student (studentid int auto_increment primary key, name varchar(20),age int);
show tables;
- 接着再对student表做一下,增删改查的操作。
1
2
3
4
5
6
7
8insert into student values('Trump',70);
insert into student values('Hillary',69);
insert into student values('Obama',55);
select * from student;
update student set name='Donald Trump' where studentid=1;
select * from student;
delete from student where name='Obama';
select * from student;
程序中如何连接
我们看一个nodejs下的链接示例,当然前提是安装了node和node-mysql,在Ubuntu下用vi写一个简单的js脚本,文件命名为testmysql.js,内容如下:
1 | var sys = require('sys'); |
执行node命令,结果如下:
1 | node testmysql.js |
程序中如何操作数据库
我们还是在testmysql.js的基础上做些修改,做一个简单的查询,内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27var sys = require('sys');
var client = mysql.createConnection({
user: 'username',
password: 'password',
});
client.connect(function(error, results) {
if(error) {
console.log('Connection Error: ' + error.message);
return;
}
console.log('Connected to MySQL');
});
client.query("use test");
client.query('select * from student',
function selectCb(error, results, fields){
if (error) { throw error;}
if(results){
for(var i = 0; i < results.length; i++){
console.log("%d\t%s\t%s", results[i].id, results[i].name, results[i].age);
}
}
client.end();
}
);
执行node命令,结果如下:
1 | node testmysql.js |
这样就可以用mysql做些简单的工作了,更多更深入的学习可以来这里: