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 编码了。
加入开机自启动:sudo update-rc.d mysql defaults
从开机自启动中移出:sudo update-rc.d -f mysql remove
注意,在Ubuntu 下MySQL 缺省是只允许本地访问的,如果你要其他机器也能够访问的话,那么需要改变/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 应该能够连接上了。