CentOS7.2编译安装Mysql

环境

1.CentOS7.2
2.MySql
3.登录用户:root

安装说明

    文章采用CentOS7.2系统安装MySQL5.7,采用cMark编译安装MySQL的方式。文章采用VM11虚拟机安装和真机操控方式。

安装过程

清除系统Mysql,Mariadb

首先卸载由RPM包安装的MySQL。系统自带的MySQL本质也是由RPM包安装的。

查询系统相关的Mysql程序

[root@localhost ~]#rpm -qa | grep mysql

卸载MySQL相关程序:

[root@localhost ~]#rpm -e 包名  或   rpm -e --nodeps 包名

如:rpm -e mysql-5.7*[这里使用了模糊匹配,这个也是使用上面的语句查出来的]rpm -e --nodeps mysql-5.7*[这里使用了模糊匹配,这个也是使用上面的语句查出来的]

注意:后者可以忽略依赖关系

查询出已经安装的mariadb数据库进行卸载

[root@localhost ~]# rpm -qa|grep mariadb  // 查询出来已安装的mariadb  
[root@localhost ~]# rpm -e --nodeps 文件名  // 卸载mariadb,文件名为上述命令查询出来的文件  

删除老版本的MySQL的开发头文件和库(若没有使用RPM版本的MySQL,则该步骤不会使用到)

[root@localhost ~]#rm -fr /usr/lib/mysql
[root@localhost ~]#rm -fr /usr/include/mysql

注意:卸载后/var/lib/mysql中的数据及/etc/my.cnf不会删除,如果确定没用后就手工删除

[root@localhost ~]#rm -f /etc/my.cnf
[root@localhost ~]#rm -fr /var/lib/mysql

创建编译环境

配置编译环境
MySQL5.5及以上版本都开始用cmake方式进行配置编译。(MySQL5.0,5.1 均使用configure进行配置。)所以需要先安装好cmake

方法一:

yum -y install make gcc-c++ cmake bison-devel ncurses-devel

方法二:

linux下源码安装cmake请移步

下载Mysql的源码并解压
[root@localhost src]# tar -zxf mysql-5.6.23.tar.gz
[root@localhost src]# cd mysql-5.6.23
创建一些准备环境

新增mysql用户组

[root@localhost src]#groupadd mysql

新增mysql用户

[root@localhost src]#useradd -r -g mysql mysql

新建mysql安装目录

[root@localhost src]#mkdir -p /usr/local/mysql

新建mysql数据库数据文件目录

[root@localhost src]#mkdir -p /usr/local/mysql/data
编译安装

CMake执行脚本为:

/usr/local/bin/cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DMYSQL_USER=mysql \
-DMYSQL_TCP_PORT=3306 \
-DENABLE_DOWNLOADS=1

注意:运行以上问题的时候可能出现的问题:
1:-bash: /usr/bin/cmake: No such file or directory

编译 & 安装

make
make install

修改mysql目录所有者和组

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

修改mysql数据库文件目录
[网上有的吧这个数据库数据目录放到/data/datadb中,我是直接在mysql中创建data,放到这里面了]

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

说明:

chown 最后跟文件名。此处使用".",表示当前目录。
启动MySQL

初始化mysql数据库

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

说明:

实际操作中可以看出,mysql_install_db命令的作用是生成MySQL系统表。并且最后在mysql目录下生成一个my.cnf文件。

--user=mysql 作用是指定运行mysqld进程的用户名。设置这个用户以后,所有通过mysqld进程创建的文件(如日志等)都会属于这个用户。
mysql配置文件

配置MySQL

cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf 

注:如果/etc/my.cnf文件存在,则覆盖。

关于MySQL配置文件存在多个访问位置。MySQL会以此访问,后访问到的配置会覆盖先前的配置。

MySQL访问配置文件的访问路径与访问顺序如下:

[root@pkklinux mysql]# /etc/my.cnf  /etc/mysql/my.cnf /usr/etc/my.cnf  ~/my.cnf

配置MySQL

[client] 
#password       = your_password 
port            = 3306 
socket          = /data/mysql/mysql.sock 
default-character-set=utf8 
# Here follows entries for some specific programs

# The MySQL server 
[mysqld] 
port            = 3306 
character_set_server=utf8 
basedir=/data/mysql 
datadir=/data/mysql/data 
socket          = /data/mysql/mysql.sock 
skip-external-locking 
key_buffer_size = 16M 
max_allowed_packet = 1M 
table_open_cache = 64 
sort_buffer_size = 512K 
net_buffer_length = 8K 
read_buffer_size = 256K 
read_rnd_buffer_size = 512K 
myisam_sort_buffer_size = 8M

将MySQL执行命令添加入PATH

vim /etc/profile

在文件的末尾添加内容:

PATH=$PATH:/usr/local/mysql/bin
export PATH

保持退出后,执行以下重新加载配置文件:

source /etc/profile

将MySQL设置为系统服务并启动服务

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

即,MySQL可以以如下形式启动:

service mysqld start

如果报错 “Starting MySQL. ERROR! The server quit without updating PID file (/data/mysql/rhelubuntu.com.pid). ” 则修改

vim  /etc/init.d/mysqld

修改basedir=/usr/local/mysql             -----mysql安装位置

修改datadir=/var/data/mysqldata          -----mysql数据文件存放位置

检查MySQL是否已经启动:

netstat -tulnp | grep 3306
配置用户

使用MySQL客户端连接MySQL服务器

mysql -u root -p

初始密码为空,如果能登陆上,则安装成功。

设置mysql管理员密码

mysqladmin -u root password "123456";

设置mysql 远程登录

grant all on *.* to root@'%';
flush privileges;
配置防火墙
防火墙的3306端口默认没有开启,若要远程访问,需要开启这个端口

打开/etc/sysconfig/iptables

在"-A INPUT –m state --state NEW –m tcp –p –dport 22 –j ACCEPT",下添加:

-A INPUT -m state --state NEW -m tcp -p -dport 3306 -j ACCEPT

然后保存,并关闭该文件,在终端内运行下面的命令,刷新防火墙配置:

service iptables restart

CentOS 7中默认使用Firewalld做防火墙,所以修改iptables后,在重启系统后,根本不管用。

Firewalld中添加端口方法如下:

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

firewall-cmd --reload
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值