Ubuntu11.10 下安装并配置MySQL

 

一、ubuntu11.10MySQL 的安装

ubuntu 命令行下输入

sudo apt-get install mysql -server 即可安装mysql 服务,默认在安装mysql-server 时,会自动安装好mysql-client

同时安装好的mysql 配置文件位置:/etc/mysql/my.cnf

启动mysql 的快捷图标为:/etc/init.d/mysql

安装mysql 图形界面 Mysql Administrator 这个直接在软件中心安装就可以。

二、编码问题的解决

查看当前MYSQL 字符集[mysql 命令行模式下执行]show variables like ‘character%’;

更改编码:sudo vim /etc/mysql/my.cnf

如果没安装vim 可以用sudo gedit /etc/mysql/my.cnf

找到[client] 添加如下两句:

// 默认字符集为utf8

default-character-set=utf8

找到[mysqld] 添加添加如下四句:( 注意每一行的前后都不能有空格)

// 默认字符集为utf8

default-character-set=utf8

// 设定连接mysql 数据库时使用utf8 编码,以让mysql 数据库为utf8 运行

init_connect=’SET NAMES utf8′

最后切换到vim 的末行模式下执行wq 退出vim 编辑器.

停止数据库服务:sudo /etc/init.d/mysql stop

重新启动:sudo /etc/init.d/mysql start

进入数据库:mysql -uroot -p( 你的密码)

查看编码:show variables like ‘% character %’;

此时应该就全是 utf8 编码了。

三、 将MySQL 服务 加入开机自启动

加入开机自启动:sudo update-rc.d mysql defaults

从开机自启动中移出:sudo update-rc.d -f mysql remove

四、配置MySQL 和远程连接ubuntu11.10MySQL

注意,在UbuntuMySQL 缺省是只允许本地访问的,如果你要其他机器也能够访问的话,那么需要改变/etc/mysql/my.cnf 配置文件了!下面我们一步步地来:

默认的MySQL 安装之后根用户是没有密码的,所以首先用根用户进入:

$mysql -u root

在这里之所以用-u root 是因为我现在是一般用户(firehare ),如果不加-u root 的话,mysql 会以为是firehare 在登录。注意,我在这里没有进入根用户模式,因为没必要。一般来说,对mysql 中的数据库进行操作, 根本没必要进入根用户模式,只有在设置时才有这种可能。

进入mysql 之后,最要紧的就是要设置Mysql 中的root 用户密码了,否则,Mysql 服务无安全可言了。

mysql> GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY "123456";

注意,我这儿用的是123456 做为root 用户的密码,但是该密码是不安全的,请大家最好使用大小写字母与数字混合的密码,且不少于8 位。

这样的话,就设置好了MySQL 中的root 用户密码了,然后就用root 用户建立你所需要的数据库。我这里就以xoops 为例:

mysql>CREATE DATABASE xoops

mysql>GRANT ALL PRIVILEGES ON xoops.* TO xoops_root@localhost IDENTIFIED BY "654321";

这样就建立了一个xoops_roots 的用户,它对数据库xoops 有着全部权限。以后就用xoops_root 来对xoops 数据库进行管理,而无需要再用root 用户了,而该用户的权限也只被限定在xoops 数据库中。

如果你想进行远程访问或控制,那么你要做两件事:

其一:

mysql>GRANT ALL PRIVILEGES ON xoops.* TO xoops_root@"%" IDENTIFIED BY "654321";

允许xoops_root 用户可以从任意机器上登入MySQL

其二:

$sudo gedit /etc/mysql/my.cnf 找到 bind-address = 127.0.0.1
这行,注释掉(如下)

#bind-address = 127.0.0.1

或者改为 bind-address = 0.0.0.0 允许任意IP 访问

或者 >bind-address=127.0.0.1 => bind-address= 你机器的IP , 这样就可以允许其他机器访问MySQL 了。

然后重新启动:sudo /etc/init.d/mysql restart

附:授权用户能进行远程连接

grant all privileges on *.* to root@"%" identified by "password" with grant option;

flush privileges;

第一行命令解释如下,*.* :第一个* 代表数据库名;第二个* 代表表名。这里的意思是所有数据库里的所有表都授权给用户。root :授予root 账号。“%” :表示授权的用户IP 可以指定,这里代表任意的IP 地址都能访问MySQL 数据库。“password” :分配账号对应的密码,这里密码自己替换成你的mysql root 帐号密码。

第二行命令是刷新权限信息,也即是让我们所作的设置马上生效。此时再远程连接ubuntu 下的MySQL 应该能够连接上了。

 

 

你可能感兴趣的:(ubuntu)