CentOS 6.4 下通过 yum 安装的 MySQL 是 5.1 版的,比较老,所以就想通过源代码安装高版本的 5.6.14。
一、卸载旧版本
伦理片
http://www.dotdy.com/
有的话通过下面的命令来卸载掉
- rpm -e mysql
- rpm -e --nodeps mysql
- 它文件,则用该命令可以对其进行强力删除
二、安装mysql
需要使用到源码安装包,这里我选择5.6版本,首先需要安装编译需要的包
- yum -y install make gcc-c++ cmake bison-devel ncurses-devel
下载mysql数据库
- wget http:
- 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的路径
执行初始化脚本,创建系统自带的数据库和表
- 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
关闭文件,运行下面的命令,让配置立即生效
现在,我们可以在终端内直接输入 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端口数据库
如果出现Starting MySQL. ERROR! The server quit without updating PID file (/usr/local/mysql3307/data/wserver.pid)
进入mysql 3306的数据库,复制里面的wserver.pid,然后改版里面的值即可。
然后进入3307端口数据库配置mysql
如果出现ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'问题,则是没有关联mysql3307的sock,则在mysql3307文件夹中的my.cnf
配置文件:
- basedir=/usr/local/mysql3307/
- datadir=/usr/local/mysql3307/data
- socket=/var/lib/mysql3307/mysql.sock
- port=3307
配置完成后然后重新启动数据库进入
依然报错
- 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;
成功!现在两个服务就按照成功了;