1,从官方网址下载MySQL5.7.19源码包
2,安装好CentOS6.7 64位操作系统。
3. 预先安装依赖软件包:yum -y install gcc gcc-c++ autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* make cmake libaio libaio-devel autoconf bzr bison libtool //相关依赖包
4
1 查看是否安装过mysql
rpm -qa | grep mysql
如果安装了,那就停止MySQL服务并且将其卸载
service mysqld stop
如果是rpm包安装的就用rpm -e 卸载,如果yum安装就用yum -y remove卸载。并且删除安装目录等
正式安装MySQL
2 添加MySQL用户和所属组(要先查看是否已经存在mysql用户和组)
cat /etc/passwd | grep mysql //查看是否已存在mysql用户
cat /etc/group | grep mysql //查看是否已存在mysql组
groupadd mysql //如果先执行下面的命令会提示没有mysql这个组
useradd -r -g mysql mysql
3 创建mysql安装目录和数据目录
cd /home
mkdir mysql //创建目录作为MySQL5.7.19安装路径
mkdir data //创建目录作为MySQL5.7.19数据路径
4、 修改MySQL目录所有者
chown -R mysql:mysql /home/mysql
5 解压源码包
把两个包放到/home目录下
tar -zxvf mysql-5.7.11.tar.gz
tar –zxvf boost_1_59_0.tar.gz boost会自动解压到mysql目录
编译安装
cmake \
-DCMAKE_INSTALL_PREFIX=/home/mysql \
-DMYSQL_DATADIR=/home/data/ \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_BOOST=./boost/
make
make install
再次确认,返回 0 说明安装成功没有问题
echo $?
切换到安装目录:
cd /home/mysql/bin
初始化数据库:
./mysqld --initialize --user=mysql --datadir=/home/data/ --basedir=/home/mysql --socket=/tmp/mysql.sock
版本初始化以后会给root用户一个初始密码
添加MySQL服务,拷贝mysql配置文件
cd /home/mysql/support-files/
cp -a mysql.server /etc/init.d/mysql
// 添加下面的,这里为了简洁,省去其他的,都是按照默认的
[root@Allen support-files]# vim /etc/my.cnf
[mysqld]
port=3306
basedir=/home/mysql
datadir=/home/data
socket=/tmp/mysql.sock
user=mysql
6、 重启MySQL、并设置开机自启
[root@Allen support-files]# service mysql start
Starting MySQL. SUCCESS!
[root@Allen support-files]#chkconfig mysql on //设置开机自启,要养成一个好习惯
注意:亲测mysql5.7.17 设置服务启动是mysql 而不是mysqld,上面没有打错。可能是因为版本的原因。本人一开始就是编译mysql5.7.17的。
[root@Allen support-files]# ps -ef //查看是启动
7、 登录MySQL
[root@Allen ~]#cd /home/mysql/bin
[root@Allen bin]# ./mysql -uroot –p
mysql> SET PASSWORD = PASSWORD('qwe12345');
mysql 新设置用户或更改密码后需用flush privileges刷新MySQL的系统权限相关表,否则会出现拒绝访问,还有一种方法,就是重新启动mysql服务器,来使新设置生效
mysql> flush privileges;
mysql> quit;
允许mysql远程访问
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
http://www.oracle.com/technetwork/java/javase/downloads/index.html