这里详细介绍一下用非root账号来编译安装mysql: 1. 先用root新建一个mysql账号 useradd -m mysql 2. 去官网下载mysql-5.1.58.ta
这里详细介绍一下用非root账号来编译安装mysql:
1. 先用root新建一个mysql账号 
useradd -m mysql 
2. 去官网下载mysql-5.1.58.tar.gz,放在/home/mysql/software下,解压: 
tar xzvf mysql-5.1.58.tar.gz 
然后进入mysql-5.1.58目录 
执行./configure --prefix=/home/mysql/local/mysql5.1.58 --with-charset=utf8 
其中--prefix指的是mysql要安装的目录,需要预先先建目录 
接着执行make和make install。 
在这个过程中如果缺少包或者编译器,请参照CentOS 6.0安装步骤文件的最后一步(见 ),用yum命令安装依赖包。 
3. 进入/home/mysql/local/mysql5.1.58中,,新建etc目录,然后 
cp /home/mysql/local/mysql5.1.58/share/mysql/my-huge.cnf /home/mysql/local/mysql5.1.58/etc 
最后将my-huge.cnf改名为my.cnf,关键在后面编辑这个文件: 
vim my.cnf 
然后将[mysqld]中 
socket = /tmp/mysql.sock 
改成 
socket = /home/mysql/local/mysql5.1.58/tmp/mysql.sock 
最后再加上以下几句: 
log-error = /home/mysql/local/mysql5.1.58/var/mysql.err 
pid-file = /home/mysql/local/mysql5.1.58/var/mysqld.pid 
datadir = /home/mysql/local/mysql5.1.58/var/ 
这主要是因为mysql默认情况在在/var和/etc底下没有新建目录和文件的权限,这样改了后mysql将这些都建在自己的目录下。
ps:mysql寻找my.cnf的顺序为/etc/my.cnf /etc/mysql/my.cnf /home/mysql/local/mysql5.1.58/etc/my.cnf ~/.my.cnf,可以进入/home/mysql/local/mysql5.1.58/libexec下执行 
./mysqld --verbose --help | grep -A 1 'Default options'可以看到。这里由于/etc和/etc/mysql下都没有my.cnf,所以会去/home/mysql/local/mysql5.1.58/etc/my.cnf底下找。 
4. 进入/home/mysql/local/mysql5.1.58/bin目录下,执行 
./mysql_install_db 安装数据库 
然后再执行./mysqld_safe &即可以启动数据库 
5.用root账号登陆数据库 
./mysql -uroot 
6. 让用户可以远程访问mysql 
在默认情况下mysql是不允许远程访问的. 
现在需要添加一个可以具有原创访问的mysql账号(需要进入mysql命令行下): 
GRANT ALL PRIVILEGES ON *.* TO remote@"%" IDENTIFIED BY '远程登录的明文密码' WITH GRANT OPTION; 
执行如下语句生效: 
flush privileges; 
在centos默认情况下iptables是开启的,但并未开放3306端口,需要我们手动指定. 
退出mysql,终端下输入: 
vi /etc/sysconfig/iptables 
添加如下字符串 
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT 
重启iptables即可: 
/etc/rc.d/init.d/iptables restart 
现在可以开始连接远程的mysql数据库了