代码改变世界

Ubuntu10.4, SUSE11.2下 mysql5.1/5.5的安装与简单配置(包括增加用户和修改字符集)

2010-04-18 15:46  chen.simon  阅读(783)  评论(0编辑  收藏  举报

SUSE11.2 环境

1.安装与卸载
1.1先用 rpm -qa | grep -i mysql 查看安装了哪些mysql相关的包(查看相关环境)
linux-9rgr:/home/tools # rpm -qa | grep -i mysql

其实我们需要 mysql-5.1.36-6.7.2.i586
 mysql-client-5.1.36-6.7.2.i586
这两个包

1.2为了演示我先卸载这两个包:

linux-9rgr:/etc # rpm -ev mysql-5.1.36-6.7.2.i586
linux-9rgr:/etc # rpm -ev mysql-client-5.1.36-6.7.2.i586

 

 

清理相关配置文件
一个是/etc/ 目录下的my.cnf文件(这个文件有可能在卸载时已经自动删除了,若未删除就手动删除)
一个是/var/lib 目录下的mysql目录
linux-9rgr:/var/lib # rm mysql -rf

1.3 安装mysql5.1
我直接从suse11.2光盘上抓rpm包,当然你也可以直接从mysql的官网寻求一个镜像后抓。
Suse11.2自带的mysql rpm在光盘上的目录为(假设光盘挂载在/media/CDROM/目录下)
/media/CDROM/suse/i586

 

我们现安装mysql-client-5.1.36-6.7.2.i586.rpm(注意安装顺序,因为依赖性)
rpm -ivh mysql-client-5.1.36-6.7.2.i586.rpm
然后再安装mysql-5.1.36-6.7.2.i586.rpm
rpm -ivh mysql-5.1.36-6.7.2.i586.rpm
当看mysql的service能成功启动时,证明已经成功安装
我们再加一步测试:
mysql -h localhost
当出现mysql>
 就是OK了。
Mysql默认在:/etc/init.d/
linux-9rgr:/etc/init.d # ls mysq* -a
mysql

-------更新 2016/08/05---------

现在可以直接将suse(我用的是 SUSE Linux Enterprise Server 11 SP3  (x86_64))的光盘挂载上上来,然后直接用yast安装5.5 方便的很

mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom

 


2.配置
linux上的mysql的配置文件正如上面所提到的在/etc/ 目录下的my.cnf文件,个人感觉类似于windows下的C:\Program Files\MySQL\MySQL Server 5.1目录下的my.ini配置文件(仅臆断未考证)


2.1字符集配置
参考
http://www.cnblogs.com/anjou/archive/2007/02/16/651638.html

根据需要修改 /etc/my.cnf,参考配置:
[mysqld]
# 设置默认为 INNODB 表,支持事务,支持行锁:
default-storage-engine=INNODB
# 设置默认的字符集:
default-character-set=utf8

-------更新 2016/08/05---------

编码修改,这样的写法在5.5已经不支持,而且会导致mysql启动不了

service mysql start
Starting service MySQL warning: /var/run/mysql/mysql.sock didn't appear within 30 seconds
chmod: cannot access `/var/run/mysql/mysqld.pid': No such file or directory

 

应该这样写:

character-set-server=utf8

 

2.2用户配置
参考http://blueram.javaeye.com/blog/316642

[2010/10/23]

悟空今天和我讨论了一个问题时,使我想起这个地方还漏了一点,抱歉,现在补上

就是(因为user表式在mysql 数据库中的)

use mysql

mysql> select host,user,password from user;
+------------+-----------+-------------------------------------------+
| host       | user      | password                                  |
+------------+-----------+-------------------------------------------+
| localhost  | root      |                                           |
| linux-9rgr | root      |                                           |
| 127.0.0.1  | root      |                                           |
| localhost  |           |                                           |
| linux-9rgr |           |                                           |
| %          | simoncook | *BB78605D2BD339161DFC5E158C72BBADC8293935 |
+------------+-----------+-------------------------------------------+

 由于安装MySQL完后,MySQL会自动提供一个不带密码的root用户,为了安全起见给root设置密码:

#mysqladmin -u root password 123 (123为密码,也可以写成:'123'或"123") ;

添加 MySQL 用户(user name:user1,password:sql):
grant all on *.* to user1@'%' identified by 'sql' with grant option
mysql>flush privileges; (刷新系统权限表)

参考http://www.jb51.net/LINUXjishu/10981.html
清除usesr为null或者''的用户

delete from user where user is NULL;
delete from user where user='';

 

user表如下:
mysql> select host,user,password from user;
+------------+-----------+-------------------------------------------+
| host       | user      | password                                  |
+------------+-----------+-------------------------------------------+
| localhost  | root      | *BB78605D2BD339161DFC5E158C72BBADC8293935 |
| linux-9rgr | root      |                                           |
| 127.0.0.1  | root      |                                           |
| %          | simoncook | *BB78605D2BD339161DFC5E158C72BBADC8293935 |
+------------+-----------+-------------------------------------------+
4 rows in set (0.00 sec)
完成后我在本机依然不能正常连接,但在局域网内的另一台机器上可以连接
报错:
linux-9rgr:/etc/init.d # mysql -h localhost -u simoncook -p
Enter password:
ERROR 1045 (28000): Access denied for user 'simoncook'@'localhost' (using password: YES)
不懂为啥
刚才又试了下,在本机上不能用localhost  127.0.0.1,用局域网的ip(10.128.156.51)就没这样的问题了,
mysql -h 10.128.156.51 -u simoncook -p

那么我现在就类似地这样做:(user1和sql换成你刚才有问题的那个用户名和密码)
grant all on *.* to user1@'localhost' identified by 'sql' with grant option
实际上就把刚才那个用户又添加了一遍,只不过是在user表中的host列的值不一样了,这个值被指定成了localhost了

 

后来发现 http://laffers.net/howtos/howto-install-mysql 这个文章也不错,,,

 

Ubuntu10.4 环境

上面的这一段是10年4月份写的

由于这段时间做android开发,开发环境就移到了ubuntu下

和suse略有不同

我用的ubuntu10.4

mysql5.1

1. 安装 用新立得软件包管理器 就很容易搞定

2. 安装后数据库的配置文件在/etc/mysql/my.cnf 文件中(网上有说一开始这个文件是一个空的,要到哪边去复制个模板过来,我好像没遇到)

3. 编码的更改(当时是为python+Django准备的数据库)

在配置文件中加上3行即可

加上init那一行,能使得Django在syncdb时,创建的数据库为utf-8编码

当我们在终端中看到select出来的结果乱码时

也可以用set NAMES utf8

win下为GBK

4. 数据库本身所存放的位置

在my.cnf中能看到

/var/lib/mysql

 

2010/11/16

--EOF--