之前一直想捣鼓以源码包的形式安装MySQL,但是不管我下的什么版本的MySQL的tar包,解压都会出错。哎,索性还是走回rpm的安装方式吧。
1:在安装rpm之前,需要把Linux自带的MySQL以及相关的连接文件都卸载掉。方式是:
rpm -qa | grep -c mysql
其中-qa 表示查询全部的rpm包 ;grep -c mysql表示只查询mysql相关的。-c表示不区分大小写。
不出意外的话应该会有很多种包,这时应该先卸载那个server文件,然后是其他的驱动连接,最后才是mysql的包文件。
2:删除mysql组和mysql用户
userdel mysql; groupdel mysql;
3:重新添加mysql用户和mysql组
groupadd mysql useradd mysql -g mysql
其中-g表示添加到哪个组。
4: 最后去MySQL官方网站下载Linux版本的server和client的rpm文件。分别执行rpm -ivh **.rpm。
安装完毕,但此时还需要做一些初始化修正操作。
第一步:输入mysql。
不出意外的话,会提示
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
这时因为mysql.sock的权限不对。输入下面的命令来修正:
chown -R mysql:mysql /var/lib/mysql
这里-R表示递归该文件目录下面所有的文件。
mysql:mysql表示将这个文件的拥有者权限赋给mysql用户,及使用群体为mysql组的全体用户
然后重启MySQL服务:
/etc/init.d/mysqld restart
第二步设置root用户名和密码, 默认情况下,初始root密码为空
在shell终端执行
mysqladmin -u root -p 123456
第三步:建立一个普通用户以及一个远程客户端的客户。
进入mysql命令行,输入:
use mysql; select host,username,password from user;
会出现如下的图片(取决不同的机器和mysql版本):
删掉其中不需要的用户和行。例如没有用户名的行等等。
新建一个本地普通用户以及远程连接用户(供Windows客户端使用MySQL可视化工具连接时使用).
grant all privileges on test.* to chenwu@localhost identified by '123456';
然后输入:
use mysql; select host,user,password from user;
看是不是多了一条新的用户?然后建立一个远程用户:
grant all privileges on test.* to chenwu@**.**.**.** identified by '123456';
这样远程客户端就可以通过这个用户连接了。
简单介绍下这里的命令:
grant all privileges 表示将test库里所有表的所有权限都赋给chenwu用户,这些权限包括select,insert,update,delete等等。
你也可以仅仅限制一部分,比如只赋insert权限等等。
当然你也可以修改用户密码等,方式和更新普通的用户一样.
//修改密码 update user set password=password('新密码') where user='chenwu' //添加新用户 insert into user(host,user,password) values('新用户IP','新用户名',password('新用户密码'));
至此mysql在Linux上的安装完毕了。下次我会尽量写一个源码包的安装方式。