Centos6.8编译安装Mysql-5.6.37

  • 2017-08-22
  • 0
  • 0

前言

为了更熟悉mysql,今天又重新安装了一遍mysql,本来想选择最新版安装,无奈安装过程中出现太多错误,资料又少,所以最后选择了安装5.6.37版本,安装过程也是极其痛苦,相比nginx和php是最难安装的一个,接下来就介绍一下在安装过程中所遇到的问题。

准备

1.安装编译源码所需的工具和库

yum -y install gcc gcc-c++ ncurses-devel perl  openssl-devel bison

2.安装cmake(记得好像从mysql 5.5开始需要cmake编译安装),可从https://cmake.org/download/ 中下载然后ftp传到服务器

tar zxvfcmake-3.9.1.tar.gz
cd cmake-3.9.1
./bootstrap
make && make install

开始安装

1.创建用户及MySQL所需目录

新增mysql用户
groupadd -r mysql
useradd -r -g mysql mysql

新建MySQL所需目录(可自定义目录)
mkdir -p /usr/local/mysql   //mysql安装目录
mkdir -p /data/mysqldb    //数据存放目录

2.编译安装MySQL

可从http://dev.mysql.com/downloads/mysql/ 下载mysql源码,然后通过ftp工具上传服务器

tar zxvf mysql-5.6.37.tar.gz
cd mysql-5.6.37

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql\
-DDEFAULT_CHARSET=utf8\
-DDEFAULT_COLLATION=utf8_general_ci\
-DWITH_INNOBASE_STORAGE_ENGINE=1\
-DWITH_ARCHIVE_STORAGE_ENGINE=1\
-DWITH_BLACKHOLE_STORAGE_ENGINE=1\
-DMYSQL_DATADIR=/data/mysqldb\
-DMYSQL_TCP_PORT=3306\
-DENABLE_DOWNLOADS=1\
-DSYSCONFDIR=/etc\
-DWITH_SSL=system\
-DWITH_ZLIB=system\
-DWITH_LIBWRAP=0

make&& make install

3.修改mysql目录权限

cd /usr/local/mysql
chown -R mysql:mysql .
cd /data/mysqldb
chown -R mysql:mysql .

4.初始化mysql数据库

cd/usr/local/mysql
./scripts/mysql_install_db –user=mysql –datadir=/data/mysqldb

5.编辑MySQL配置文件

mv /etc/my.cnf /etc/my.cnf.bak     //如果 /etc 目录下没有my.cnf文件可以自己创建

写入内容:

[client]
port = 3306
socket = /var/lib/mysql/mysql.sock

[mysqld]
port = 3306
socket = /var/lib/mysql/mysql.sock
datadir =/usr/local/mysql/data

也可以参照percona官网中及按照自己的情况生成。网址如下:https://tools.percona.com/wizard

6.配置数据库

安装完成后默认没有密码,直接输入mysql即可进入mysql控制台

# mysql

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.37 Source distribution

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

你也可以查看用户表信息:

mysql>select user,password,host from mysql.user;

表内的所以用户信息

+——+———-+————————-+
| user | password | host |
+——+———-+————————-+
| root |                   | localhost |
| root |                   | izwz9hx16c6lym981sotzmz |
| root |                   | 127.0.0.1 |
| root |                   | ::1 |
|          |                   | localhost |
+——+———-+————————-+

为用户设置密码:

update mysql.user set password=password(‘*******’);

刷新权限生效:

flush privileges;

设置远程访问连接

1.新建远程访问的用户

create user ‘test’@’localhost’ IDENTIFIED BY ‘123456’;

2.为用户授权

方法一:UPDATE mysql.user SET Host = ‘%’ WHERE User= ‘需要设置的用户’ LIMIT 1;

方法二: grant 权限 on mysql.user to 用户名@登录主机 identified by “密码”;

3.刷新权限

flush privileges;

   为用户授予部分权限:
grant select,update on testDB.* to test@localhost identified by ‘1234’;
     授予一个用户所有数据库的某些权限:
grant select,delete,update,create,drop on *.* to test@”%” identified by “1234”;
     删除用户:
Delete FROM user Where User=’test’ and Host=’localhost’;
 分配权限要执行执行刷新操作(flush privileges;)才能生效。

补充:如果是阿里云服务器,上面的操作后,远程还是无法访问,可登录阿里云控制台,在云服务安全组新增规则,

克隆一个规则出来并把端口号修改成mysql的3306,然后重启服务器。

可能遇到的问题:

1.cmake报错

大部分是缺少组件比如boost_1_59_0,缺少组件安装即可

2.mysql启动报错

如果是报 ERROR! The server quit without updating PID file (/data/mysqldb/iZwz9hx16c6lym981sotzmZ.pid)这种问题,是my.cnf文件配置问题

评论

还没有任何评论,你来说两句吧