Linux 安装两个mysql服务

CentOS 6.4 下通过 yum 安装的 MySQL 是 5.1 版的,比较老,所以就想通过源代码安装高版本的 5.6.14。
一、卸载旧版本
  rpm -qa | grep mysql

有的话通过下面的命令来卸载掉
rpm -e mysql //普通删除模式
rpm -e --nodeps mysql // 强力删除模式,如果使用上面命令删除时,提示有依赖的其
它文件,则用该命令可以对其进行强力删除


二、安装mysql
需要使用到源码安装包,这里我选择5.6版本,首先需要安装编译需要的包
yum -y install make gcc-c++ cmake bison-devel ncurses-devel

下载mysql数据库
wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.14.tar.gz
tar xvf mysql-5.6.14.tar.gz
cd mysql-5.6.14

编译安装
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
make && make install


整个过程需要30分钟左右,请耐心等待
三、设置mysql配置
使用下面的命令查看是否有 mysql 用户及用户组
cat /etc/passwd 查看用户列表
cat /etc/group 查看用户组列表

如果没有就创建
groupadd mysql
useradd -g mysql mysql

修改/usr/local/mysql 权限
chown -R mysql:mysql /usr/local/mysql

然后进入安装mysql的路径
cd /usr/local/mysql


  执行初始化脚本,创建系统自带的数据库和表
scripts/mysql_install_db --basedir=/usr/local/mysql3307 --datadir=/usr/local/mysql3307/data --user=mysql3307

四、启动mysql服务
   添加服务,拷贝服务脚本到 init.d 目录,并设置开机启动
cp support-files/mysql.server /etc/init.d/mysql
chkconfig mysql on
service mysql start --启动 MySQL


   配置用户信息
   MySQL 启动成功后,root 默认没有密码,我们需要设置 root 密码。
   设置之前,我们需要先设置 PATH,要不不能直接调用 mysql
   修改/etc/profile 文件,在文件末尾添加
PATH=/usr/local/mysql/bin:$PATH
export PATH

   关闭文件,运行下面的命令,让配置立即生效
source /etc/profile

   现在,我们可以在终端内直接输入 mysql 进入,mysql 的环境了
    执行下面的命令修改 root 密码
mysql -uroot
mysql> SET PASSWORD = PASSWORD('123456');

    设置用户远程访问
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.%' IDENTIFIED BY 'password'
WITH GRANT OPTION;

    配置防火墙
     防火墙的 3306 端口默认没有开启,若要远程访问,需要开启这个端口
     打开/etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
service iptables restart

   安装数据库完成


    接着我们安装第二个mysql服务,可以选择拷贝第一次安装的路径内容到第二个mysql文件夹中或者再次编译安装mysql服务,这次如果安装则路径为
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql3307 \
-DMYSQL_DATADIR=/usr/local/mysql3307/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql3307/mysql.sock \
-DMYSQL_TCP_PORT=3307 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci
make && make install


我安装的是3307端口的数据库,则配置如上;
 groupadd mysql3307
 useradd -g mysql3307 mysql3307

给3307配置用户和用户组,可以不用,我这里使用这个是为了将mysql3307数据库加入服务中,启动方便

需要对当前路径授权
 chown -R mysql:mysql /usr/local/mysql3307

 cd /usr/local/mysql3307


然后对第二个数据进行执行脚本
scripts/mysql_install_db --basedir=/usr/local/mysql3307 --datadir=/usr/local/mysql3307/data --user=mysql3307


cp support-files/mysql.server /etc/init.d/mysql3307

chkconfig mysql3307 on

进入3307端口数据库
srvice mysql3307 start

如果出现Starting MySQL. ERROR! The server quit without updating PID file (/usr/local/mysql3307/data/wserver.pid)
进入mysql 3306的数据库,复制里面的wserver.pid,然后改版里面的值即可。

然后进入3307端口数据库配置mysql
mysql -P3307 -uroot

如果出现ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'问题,则是没有关联mysql3307的sock,则在mysql3307文件夹中的my.cnf
vi my.cnf


配置文件:
basedir=/usr/local/mysql3307/ 
datadir=/usr/local/mysql3307/data 
socket=/var/lib/mysql3307/mysql.sock
port=3307
配置完成后然后重新启动数据库进入
mysql -P3307 -uroot

依然报错
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/bin/mysql3307/mysql.sock' 

更换进入方式:
mysql -uroot -p -S /var/lib/mysql3307/mysql.sock

进入成功
设置3307数据库密码
SET PASSWORD = PASSWORD('123456');

设置远程访问用户
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'test' WITH GRANT OPTION;


成功!现在两个服务就按照成功了;

猜你喜欢

转载自playxinz.iteye.com/blog/2236799
今日推荐