• 重要通知:网站内容不做更新,只对现有的进行扩展,新技术资料已转移到其它位置存储。

  • 通知:2021年3月21日将博客服务器迁移,感谢好友老刘提供的服务器!!!
    点击查看具体站点更新信息

  • 提示:站点启用不定时清理注册未登录的帐户,已登录过用户请无视!

  • 通知:2019年5月18日网站迎来一波大更新!!!

    点击查看具体站点更新信息

CentOS7.2环境源码编译安装Mysql5.6.35

数据存储 盛行 5年前 (2017-07-15) 3306次浏览 已收录 0个评论 扫描二维码
文章目录
[隐藏]

1.系统环境

CentOS7.2环境源码编译安装Php5.6.36
CentOS7.2环境源码编译安装Nginx-1.14.0

# cat /etc/redhat-releaseCentOS 
Linux release 7.2.1511 (Core)
# uname -a
Linux c72 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

1.1.准备:

站点:https://www.mysql.com/
下载地址:https://dev.mysql.com/downloads/mysql/5.6.html#downloads
包地址:https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.35.tar.gz

1.2.安装基础依赖包

# yum install -y gcc gcc-c++
# yum install -y cmake
# yum install -y ncurses-devel
# yum install -y autoconf
# yum install -y perl perl-devel

或是使用以下命令,结果相同:

# yum install -y gcc gcc-c++ cmake ncurses-devel autoconf perl perl-devel

上面的gcc、gcc-c++我们在安装Nginx的时候已经安装过了,这次可以跳过这一步。如果不清楚是否安装可以使用以下命令查询:

# rpm -qa gcc gcc-c++ cmake ncurses-devel autoconf perl perl-devel
perl-5.16.3-292.el7.x86_64
gcc-4.8.5-28.el7_5.1.x86_64
gcc-c++-4.8.5-28.el7_5.1.x86_64

1.3.创建Mysql目录和用户

# mkdir -p /usr/local/mysql/data
# useradd -u 8003 -M -s /sbin/nologin mysql

1.4.解压并安装Mysql

# tar -xzvf mysql-5.6.35.tar.gz
# cd mysql-5.6.35
# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DINSTALL_DATADIR=/usr/local/mysql/data \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DENABLED_LOCAL_INFILE=1
# make && make install

CMAKE参数说明:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql:默认安装目录
-DINSTALL_DATADIR=/usr/local/mysql/data:数据库存放目录
-DDEFAULT_CHARSET=utf8:使用utf8字符
-DDEFAULT_COLLATION=utf8_general_ci:校验字符
-DEXTRA_CHARSETS=all:安装所有扩展字符集
-DENABLED_LOCAL_INFILE=1:允许从本地导入数据
-DMYSQL_USER=mysql
-DMYSQL_TCP_PORT=3306
CMAKE详细配置请参照mysql官网
注意事项:
如安装失败重新编译时,需要清除旧的对象文件和缓存信息。

# make clean
# rm -f CMakeCache.txt
# rm -rf /etc/my.cnf

1.5.设置Mysql目录权限

# cd /usr/local/
# chown -R mysql:mysql mysql

1.6.配置mysql服务

1.6.1.复制默认配置文件

# cp /tmp/mysql-5.6.35/support-files/my-default.cnf /etc/my.cnf
cp:是否覆盖"/etc/my.cnf"? y

1.6.2.创建基础表:

# cd /usr/local/mysql
#  ./scripts/mysql_install_db --user=mysql

1.6.3.添加环境变量

# vim /etc/profile
export MYSQL_HOME="/usr/local/mysql"
export PATH="$PATH:$MYSQL_HOME/bin"

CentOS7.2环境源码编译安装Mysql5.6.35

# source /etc/profile

1.6.4.复制文件

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

将mysql加入到可控制启动的服务的文件夹内,并命名mysql,即service可控制的服务名,至此可用service mysql start控制启动mysql,/etc/init.d 是/etc/rc.d/init.d的链接,在/etc/init.d添加一个文件会同步在/etc/rc.d/init.d下

1.6.5.设置开机自启

# chkconfig --add mysql
# chkconfig
注意:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖。
      如果您想列出 systemd 服务,请执行 'systemctl list-unit-files'。
      欲查看对特定 target 启用的服务请执行
      'systemctl list-dependencies [target]'。
mysql           0:关    1:关    2:开    3:开    4:开    5:开    6:关
netconsole      0:关    1:关    2:关    3:关    4:关    5:关    6:关
network         0:关    1:关    2:开    3:开    4:开    5:开    6:关

以上可以看出mysql已配置开机自动启动,级别包括(2、3、4、5),如果显示关,可以运行以下命令启动

# chkconfig mysql on

chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息,谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接
–add : 加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据,服务脚本必须存放在/etc/ini.d/目录下
现在可以使用下面的命令启动mysql

# service mysql start

启动mysql服务
# service 服务名 stop
停止mysql服务
# service 服务名 restart
重启mysql服务
下面两种命令作用相同
systemctl [stop|start|restart] 服务名
service 服务名 [stop|start|restart]

1.7.配置root密码

# mysqladmin -u root password
New password:
Confirm new password:

注意:密码输入的时候不回显,需要输入两次一样的密码。
配置好了之后我们可以使用以下命令验证是否设置成功。
# mysql -uroot -p密码

# mysql -uroot -paA111111
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.6.35 Source distribution
Copyright (c) 2000, 2016, 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>

登陆成功之后就会进入到mysql中,并以mysql>显示。

1.8.配置root远程连接

mysql>use mysql;
mysql>desc user;
mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root"; 
//为root添加远程连接的能力。
mysql>update user set Password = password('aA111111') where User='root';
mysql>select Host,User,Password from user where User='root'; 
mysql>flush privileges;  
//刷新权限
mysql>exit  
//退出

如果要添加grant option权限使用grant all privileges on *.* to root@"%" identified by "aA111111" with grant option;如果没有生效使用此命令刷新一下flush privileges;

mysql>update user set Password = password('aA111111') where User='root';
注意:此密码是设置root远程连接时所需要提供的密码,不是数据库管理员root的登陆密码。

1.9.4个GRANT示例

1.9.1.示例1

给来自172.20.10.146的用户test1分配可对数据库dbname的tablename表进行SELECT,INSERT,UPDATE,DELETE,CREATE,DROP等操作的权限,并设定密码为aA11111

mysql>GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON dbname.tablename TO 'test1'@'172.20.10.146' IDENTIFIED BY 'aA111111';

1.9.2.示例2

给来自172.20.10.146的用户test2分配可对数据库dbname所有表进行所有操作的权限,并设定口令为aA111111

mysql>GRANT ALL PRIVILEGES ON dbname.* TO 'test2'@'172.20.10.146' IDENTIFIED BY 'aA111111';

1.9.3.示例3

给来自172.20.10.146的用户test3分配可对所有数据库的所有表进行所有操作的权限,并设定口令为aA111111

mysql>GRANT ALL PRIVILEGES ON *.* TO 'test3'@'172.20.10.146' IDENTIFIED BY 'aA111111';

1.9.4.示例4

给本机用户test4分配可对所有数据库的所有表进行所有操作的权限,并设定口令为aA111111

mysql>GRANT ALL PRIVILEGES ON *.* TO 'test4'@'localhost' IDENTIFIED BY 'aA111111';

1.10.防火墙放行3306端口

CentOS升级到7之后,使用firewalld代替了原来的iptables。下面记录如何使用firewalld开放Linux端口
–zone       : 作用域,网络区域定义了网络连接的可信等级。这是一个一对多的关系,这意味着一次连接可以仅仅是一个区域的一部分,而一个区域可以用于很多连接
–add-port   : 添加端口与通信协议,格式为:端口/通讯协议,协议是tcp 或 udp
–permanent  : 永久生效,没有此参数系统重启后端口访问失效

# firewall-cmd --zone=public --add-port=3306/tcp --permanent
# firewall-cmd --reload

1.11.root密码找回

停止mysql服务,或者命令systemctl stop mysql

# service mysql stop
进入/usr/local/mysql
# cd /usr/local/mysql/

通过mysqld_safe启动mysql,并且启动mysql时不启动grant-tables授权表

# ./bin/mysqld_safe --basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data \
--skip-grant-tables &
mysql -u root mysql
mysql>UPDATE user SET password=PASSWORD("new_password") WHERE user='root';
修改root密码
mysql>FLUSH PRIVILEGES;
刷新权限

IT博客站版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:CentOS7.2环境源码编译安装Mysql5.6.35
喜欢 (0)
[使用支付宝扫码]
分享 (0)
盛行
关于作者:
企业应用技术爱好者,喜欢分享知识。如果文章中有错误,欢迎指正,谢谢。
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址