SUSE11.2 下 mysql5.1的安装与简单配置(包括用户和字符集)
2010-04-18 15:46 by xiaguangme, 19 visits, 网摘, 收藏, 编辑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为了演示我先卸载这两个包:
清理相关配置文件
一个是/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
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
2.2用户配置
参考http://blueram.iteye.com/blog/316642
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或者''的用户
1 | delete from user where uses is NULL ; |
2 | 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 这个文章也不错,,,