博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux编译安装MySQL5.6
阅读量:4613 次
发布时间:2019-06-09

本文共 4912 字,大约阅读时间需要 16 分钟。

为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处。LaplaceDemon/SJQ。

http://www.cnblogs.com/shijiaqi1066/p/4311061.html

 

 

 

此处使用的MySQL为5.6版本。

卸载MySQL

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

查询系统中MySQL的相关程序:

rpm -qa | grep mysql

 

卸载MySQL相关程序:

rpm -e 包名  或   rpm -e --nodeps 包名

 

例:卸载mysql-libs

rpm -e mysql-libs    #卸载

说明:若存在依赖关系,则无法被卸载。

 

忽略依赖关系卸载:

rpm -e --nodeps mysql-libs

 

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

rm -fr /usr/lib/mysqlrm -fr /usr/include/mysql

 

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

rm -f /etc/my.cnfrm -fr /var/lib/mysql

 

 

 

 

编译安装MySQL

配置编译环境

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

方法一:

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

 

方法二:

CentOS5.5的yum没有cmake,所以可以选择编译安装cmake。

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

yum install gcc gcc-c++ ncurses-devel perl

 

安装cmake,从 www.cmake.org 下载源码并编译安装

wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz  tar -xzvf cmake-2.8.10.2.tar.gzcd cmake-2.8.10.2  ./bootstrap ; make ; make install

 

下载MySQL源码包后开始编译

tar -zxf mysql-5.6.23.tar.gzcd mysql-5.6.23

 

 

 

一些准备工作

设置MySQL用户和组

新增mysql用户组

groupadd mysql

 

新增mysql用户

useradd -r -g mysql mysql

 

新建MySQL所需要的目录

新建mysql安装目录

mkdir -p /usr/local/mysql

 

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

mkdir -p /data/mysqldb

 

 

 

编译安装

CMake执行脚本为:

cmake \-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \-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

说明:

网上有些文章中给出的cmake命令如下:

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci \-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \-DWITH_MYISAM_STORAGE_ENGINE=1 \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_MEMORY_STORAGE_ENGINE=1 \-DWITH_READLINE=1 \-DENABLED_LOCAL_INFILE=1 \-DMYSQL_DATADIR=/data/mysql \-DMYSQL_USER=mysql \-DMYSQL_TCP_PORT=3306

 

编译后警告显示:

即MYSQL_USER等模块式不可用的。

此时,若需要重新配置,请删除CMakeCache.txt文件:

rm CMakeCache.txt

 

去掉MYSQL_USER等不可被用的选项后,再重新编译即可。

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \-DDEFAULT_CHARSET=utf8 \-DDEFAULT_COLLATION=utf8_general_ci \-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \-DWITH_MYISAM_STORAGE_ENGINE=1 \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DENABLED_LOCAL_INFILE=1 \-DMYSQL_DATADIR=/data/mysql \-DMYSQL_TCP_PORT=3306

 

 

编译 & 安装

makemake install

这两步都需要很长时间,请耐心等待。

 

修改mysql目录所有者和组

修改mysql安装目录

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

 

修改mysql数据库文件目录

cd /data/mysqldbchown -R mysql:mysql .

 

说明:

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

 

 

启动MySQL

初始化mysql数据库

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

...... ......

说明:

从打印日志可以看出,mysql_install_db命令的作用是生成MySQL系统表。并且最后在mysql目录下生成一个my.cnf文件。

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

 

 

 

mysql配置文件

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

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

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

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

 

配置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/binexport 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应该不会报错了。

 

检查MySQL是否已经启动:

netstat -tulnp | grep 3306

 

 

配置用户

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

mysql -u root -p

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

 

设置mysql管理员密码

mysqladmin -u root password "123456";

则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

 

 

 

为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处。LaplaceDemon/SJQ。

http://www.cnblogs.com/shijiaqi1066/p/4311061.html

转载于:https://www.cnblogs.com/shijiaqi1066/p/4311061.html

你可能感兴趣的文章
你必知必会的SQL面试题
查看>>
html5 Canvas绘制时钟以及绘制运动的圆
查看>>
云推送注意(MSDN链接)
查看>>
OpenMobile's Application Compatibility Layer (ACL)
查看>>
竞价广告系统-广告检索
查看>>
Metro Style app :浏览器扩展
查看>>
linux的kernel是怎样工作的(TI_DM36X_ARM系统)(1)
查看>>
[luogu4310] 绝世好题 (递推)
查看>>
[luogu3203 HNOI2010] 弹飞绵羊 (分块)
查看>>
mui搜索框 搜索点击事件
查看>>
2016012003+陈琦+散列函数的应用及其安全性
查看>>
Android 状态栏通知Notification、NotificationManager详解
查看>>
UIApplicationDelegate协议
查看>>
Jmeter测试dubbo接口填坑
查看>>
[zz]GDB调试精粹及使用实例
查看>>
数据库的创建和删除
查看>>
最简单的三层实例【插入据
查看>>
设计模式学习笔记——Prototype原型模式
查看>>
pom.xml里有红叉报错的解决办法
查看>>
Perl last和next的用法区别
查看>>