因为经常要在ubuntu linux的环境下做一些开发工作。很多时候也牵涉到mysql相关的开发工作。于是就把整个过程做了一个整理,以方便以后再次安装配置的时候参考,也希望能够让新手少走点弯路。
其实当时要做的事情主要也就是以下几件,首先要在ubuntu的机器上装一个mysql server,然后需要配置特定的帐号和权限来执行一些sql脚本,创建一个包含有完整数据的环境。现在开始:
1. 安装
如果我们在没有安装mysql的ubuntu系统中输入如下的命令:mysql, 系统会给出如下的提示:
Sql代码
The program 'mysql' is currently not installed. You can install it by typing:
sudo apt-get install mysql-client-core-5.5
实际上我们安装mysql的时候,可以选择安装server或者client,如果只是安装有client端的话,要连接到安装有server的服务器端才能访问。client提供了和sql脚本交互以及连接某个特定mysql服务器的功能。我们因为需要安装server,使用如下的命令就可以,而且同时也将client也包含安装在内了。
Sql代码
sudo apt-get install mysql-server
安装过程中会提示输入root帐号的密码。root是mysql系统中的管理员角色,具有最高的权限。
输入密码之后会提示再次确认密码,如下图:
确认完密码之后系统会自动完成后续的安装过程。
2. 采用root登录
安装过程之后,我们就可以登录进入mysql server了。mysql 默认的情况下是不允许匿名登录的。如果我们输入如下的命令:mysql,可能会得到如下的错误信息:
Sql代码
ERROR 1045 (28000): Access denied for user 'frank'@'localhost' (using password: NO)
既然我们前面指定了root用户的密码,可以采用如下的命令来登录:
Sql代码
mysql -u root -p
-u 选项用来指定登录的用户,后面的root表示采用root帐号登录。-p选项表示采用密码验证的方式登录。
在输入前面的命令后,系统会提示输入密码,如果正确的话就可以进入系统了。
3. 创建新用户
在大多数情况下,如果我们将结合mysql进行一些开发工作的话,不会直接采用root账户。一般root账户用来做一些系统管理和维护的工作,而且因为root权限太高。如果mysql系统出现问题容易导致所有数据的破坏。所以我们需要专门创建一个特定的用户,由root来给它指派一定的权限。这样,就算该账户出现问题,造成的损失也可能只是该帐号权限范围内的,不至于整体的破坏。
比如说我们要创建一个新的用户,并设置该用户的访问密码,在以root用户登录进入系统后,执行如下命令:
Sql代码
create user 'frank'@'localhost';
Java代码
set password for 'frank'@'localhost' = password('abcdefg');
前面两条命令分别创建了用户frank并设置了该用户的密码。对于第一个命令,因为该用户是运行在本地'localhost'实例上的,所以需要指定为'用户名'@‘实例名’这种样式。如果我们要采用字符密码的方式来设置的话,需要采用password(''),在后面的括号参数里指定密码。如本例,密码为'abcdefg'。
这样,我们就创建了一个用户并指定了他的密码。后面,我们就需要指定分配权限的资源。假设我们创建一个数据库:sampledb。
Java代码
create database sampledb;
4. 配置新用户权限
假设我们需要将sampledb的全部权限赋予新创建的用户frank,我们需要执行如下的命令:
Sql代码
grant all privileges on sampledb.* to 'frank'@'localhost';
这是设置权限最简单的一种方式,表示将数据库sampledb的所有访问权限都赋予用户frank.如果需要更加细粒度的控制,则需要考虑不同的访问操作以及数据库的不同部分。
5. 执行脚本
当我们配置好用户之后就可能需要执行一些sql脚本。脚本的执行方式有几种,一种是没有登录进入mysql server的情况下。典型的执行方式如下:
Java代码
shell> mysql db_name
shell> mysql db_name -u username -p
这两种方式分别基于用户认证和非认证的方式来执行。
在登录进入mysql的情况下,可以采用更简单的方式执行:
Sql代码
mysql> source file_name
mysql> \. file_name
总结:
安装和配置mysql的过程稍微有点麻烦,如果习惯了windows下面手工的配置方式的话,会不太习惯。故总结一下,以备参考。