Linux下Mysql 的编译安装最新版本5.6.24和详细部署

 

MySQL 5.6正式版发布了,相对于5.5版本作出了不少改进,其源码安装配置方式也有所变化,本文根据实际操作,不断尝试,精确还原了安装的具体步骤。

安装MySQL前,先确认卸载系统自带数据库

打开操作终端

输入rpm -qa|grep mysql(罗列所有数据库相关的文件)

rpm –e (罗列出来的文件)--nodeps(使用该命令依次删除罗列出来的文件)--nodeps为删除与之依赖的文件。

确认Internet连接正常,以便下载安装文件。

先使用 yum -y update 指令升级系统到最新版本。

没有安装了CMake先安装CMake


Make安装步骤 

步骤一、安装gcc等必备程序包(已安装则略过此步) 

yum install -y gcc gcc-c++ make automake  

步骤二、安装wget (已安装则略过此步) 

yum install -y wget 

步骤三、获取CMake源码包 

wget


http://www.cmake.org/files/v2.8/cmake-2.8.11-rc3.tar.gz 

步骤四、解压CMake源码包 

tar -zxvf cmake-2.8.11-rc3.tar.gz 

步骤五、进入目录 

cd cmake-2.8.11-rc3 

步骤六 

./bootstrap


步骤七 

gmake 

 步骤八 

gmake install 

 安装完成,可阅读install_manifest.txt查看具体都安装了什么。 

三、异常情况 

如果步骤六报错,可能原因是关联的程序包未安装。解决方法:安装所需的程序包后,将cmake-2.8.11-rc3/目录下的CMakeCache.txt删掉,再从步骤六开始。

 

本安装将MySQL的数据文件与执行文件分离,如果你打算设置到不同的路径,注意修改对应的执行命令和数据库初始化脚本。

#修改防火墙设置,打开3306端口
vi /etc/sysconfig/iptables-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

#重启防火墙使新设置生效
service iptables restart


msyql服务器: mysql-5.6.24.tar.gz 

下载地 址:http://dev.mysql.com/downloads/mysql/5.1.html#downloads 免费版,只能下载mysql社匙版。

MySQL   Community Server 选择合适的版本迚行下载:  

 

Mysql 5.5.15 以后,使用了新的 cmake 编译方式,所以先安装 cmake。之前的版本直接 configure 然后make ,make install 。 cmake是什么? CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够 输出各种各样的 makefile 戒者 project 文件,能测试编译器所支持的 C++特性,类似 UNIX 下的 automake。 只是 CMake 的组态档取名为 CmakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的 建构档(如 Unix 的 Makefile 戒 Windows Visual C++ 的 projects/workspaces),然后再依一般 的建构方式使用。这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种 可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的匙删之处。



安装前,如果不存在mysql 用户,则建立之

#新增用户组

groupadd mysql

#新增用户
useradd mysql -g mysql

#新建数据库执行文件目录
mkdir -p /usr/local/mysql

#新建数据库数据文件目录
mkdir -p /usr/local/mysql/data

#编辑PATH搜索路径
vi /etc/profile
Append these 2 lines to the end of the file:将下面两行命令增加到最后
PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH
export PATH

#生效PATH搜索路径
source /etc/profile

#编辑hosts文件,加入本机IP和主机名
vi /etc/hosts
192.168.211.100      centhost.centdomain

#安装编译源码所需的工具和库(需要联网)
yum -y install wget gcc-c++ ncurses-devel cmake make perl

#进入源码压缩包下载目录
cd /usr/local/src

#下载源码压缩包,下载包53M大小,有点慢,等吧。
wget

http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.10.tar.gz/from/http://cdn.mysql.com/

http://dev.mysql.com/downloads/mysql/#downloads

http://fossies.org/linux/misc/

#解压缩源码包
tar -zxvf mysql-5.6.11.tar.gz

#进入解压缩源码目录
cd mysql-5.6.11

# 从mysql5.5起,mysql源码安装开始使用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_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

#编译源码,这一步时间会较长,耐心等待。

cmake 编译选项含意:

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql

#指定mysql安装的根目录,只要

/mysql

目录存在就可以了,mysql-5.5在安装时,会自动创建。这个 值可以在服务器开机时,通过--basedir来设置。

-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock

#mysql服务器用于监听的套接字,这个必需是一个绝对路径,默认是/tmp/mysql.sock。在服务器吭劢 时,可通过--socket 来改变。 

-DDEFAULT_CHARSET=utf8

#设置mysql默认使用utf8字符集,不指定,默认使用latin1 西欧字符集。 

-DDEFAULT_COLLATION=utf8_general_ci

#默认字符校对 

DWITH_EXTRA_CHARSETS=all  

#指定mysql扩展字符集支持所有的字符集。默认mysql支持所有字符集

 -DWITH_MYISAM_STORAGE_ENGINE=1 

 -DWITH_INNOBASE_STORAGE_ENGINE=1 

  -DWITH_MEMORY_STORAGE_ENGINE=1  

 #静态编译 Myisam、Innobase、Memory 存储引擎刡 mysql 服务器。这样 mysql 服务器就支持这三 种存储引擎了。  


-DWITH_READLINE=1   #支持readline库 。

 -DENABLED_LOCAL_INFILE=1   #允许从本地导入数据 ,吭用加载本地数据

 -DMYSQL_DATADIR=/server/mysql/data   #mysql数据库存放数据的目录 

-DMYSQL_USER=mysql    #指定运行mysql服务的用户  


注:具体编译参数参考: http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html  


make

#安装
make install

#清除安装临时文件
make clean

#修改目录拥有者
chown -R mysql:mysql /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql/data

#进入安装路径
cd /usr/local/mysql

#执行初始化配置脚本,创建系统自带的数据库和表。
scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data
初始化脚本在 /usr/local/mysql/my.cnf 生成了配置文件。需要更改该配置文件的所有者:
chown -R mysql:mysql /usr/local/mysql
多说两句:在启动MySQL服务时,会按照一定次序搜索my.cnf,先在/etc目录下找,找不到则会搜索"$basedir/my.cnf",在本例中就是 /usr/local/mysql/my.cnf,这是新版MySQL的配置文件的默认位置!注意:在CentOS 6.4版操作系统的最小安装完成后,在/etc目录下会存在一个my.cnf,需要将此文件更名为其他的名字,如:/etc/my.cnf.bak,否则,该文件会干扰源码安装的MySQL的正确配置,造成无法启动。

#复制服务启动脚本
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

chmod 755 /etc/init.d/mysqld

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

#启动MySQL服务
service mysqld start

# 设置开机自动启动服务
chkconfig mysqld on

chkconfig  --list mysqld5.5 mysqld5.5       0:off 1:off 2:on 3:on 4:on 5:on 6:off  

# 修改MySQL用户root的密码(授权法,例如:你想root用户使用root密码从任何主机连接到mysql服务器)
mysql -u root(进入MySQ终端)

mysql>use mysql;(进入MySQL数据库)


mysql>GRANT ALL PRIVILEGES ON *.* TO [email protected]"%" IDENTIFIED BY "root";(授权root用户使用root password从任何主机连接到mysql服务器)


mysql>update user set Password = password(‘123456‘) where User=‘root‘;(修改root用户密码为123456)
mysql>flush privileges;(特权)


mysql>exit;(退出)

# 可选:运行安全设置脚本,修改MySQL用户root(不是系统的root!)的密码,禁止root远程连接(防止破解密码),移除test数据库和匿名用户,强烈建议生产服务器使用:

/usr/local/mysql/bin/mysql_secure_installation



=== MySQL的使用 ===

 

mysql [-h <主机>] [-u <用户名>] [-p] [数据库名]

 

●更改root管理员的密码

mysql> update mysql.user set password=password(‘123456‘) where user=‘root‘;

 

●添加用户admin,允许从任何地方登录MySQL服务器

mysql> insert into user(host,user,password) values("%","admin",password("pwabc"));


●刷新用户授权信息

mysql> flush privileges;

 

●删除MySQL的空用户

mysql> delete from mysql.user where user=‘‘;

 

●显示数据库结构

mysql> show database;

 

mysql> show tables;

 

●显示数据表的结构

DESCRIBE [数据库名.]表名

mysql> use mysql;

mysql> describe user;

 

●创建新的数据库

CREATE DATABASE 数据库名

mysql> create database mydb;

 

●创建新的数据表

CREATE TABLE 表名 (字段定义……)

mysql> CREATE TABLE users (user_name CHAR(30) NOT NULL, user_password CHAR(20) NOT NULL DEFAULT ‘123456‘, PRIMARY KEY (user_name));

 

●修改表名

alter table 表名 rename to 新表名

 

●删除一个数据表

DROP TABLE [数据库名.]表名

mysql> drop table mydb.users;

 

●删除一个数据库

DROP DATABASE 数据库名

mysql> drop database mydb;

 

●插入数据记录

INSERT INTO 表名(字段1,字段2,……) VALUES(字段1的值,字段2的值,……)

mysql> insert into mydb.users(user_name,user_password) values(‘zhangsan‘,encrypt(‘123456‘));

 

●查询数据记录

SELECT 字段名1,字段名2…… FROM 表名 WHERE 条件表达式

mysql> select * from mydb.users;

mysql> select user_name,user_password from mydb.user where user_name=‘zhangsan‘;

 

●修改

数据记录

UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2] WHERE 条件表达式

mysql> update mydb.users set user_password=encrypt(‘123123‘) where user_name=‘list‘;

 

●删除数据记录

DELETE FROM 表名 WHERE 条件表达式

mysql> delete from mydb.users where user_name=‘lisi‘;

 

●数据库的备份

mysqldump -u [用户名] -p [密码] [options] [数据库名] [表名] > /备份路径/备份文件名

# 备份整个mydb数据库

mysqldump -u root -p mydb > mysql-mydb.sql

# 备份mysql数据库中的host表、user表

mysqldump -u root -p mysql host user > mysql.host-user.sql

# 备份MySQL服务器中所有数据库

mysqldump -u root -p --all-databases > mysql-all.sql

 

●恢复数据库

mysql -u root -p [数据库名] < /备份路径/备份文件名

mysql -u root -p < mysql-all.sql

mysql -u root -p mydb < mysql-mydb.sql

 

●授予权限

GRANT 权限列表 ON 数据库名.表名 TO 用户名@来源地址 [ IDENTIFIED BY ‘密码‘ ]

mysql> grant select on mysql.user to [email protected]‘localhost‘ identified by ‘pw123‘;

mysql> grant all on mydb.* to [email protected]‘localhost‘ identified by ‘123456‘;

mysql> grant select on mydb.* to [email protected]‘192.168.0.0/24‘ identified by ‘123456‘;

mysql> grant select,insert on mydb.* to [email protected]‘%.benet.com‘ identified by ‘pw456‘;

 

●查看权限

SHOW GRANTS FOR 用户名@域名或IP

mysql> show grants for [email protected]‘localhost‘;

 

●撤销权限

REVOKE 权限列表 on 数据库名.表名 from 用户名@域名或者IP

revoke all on mydb.* from [email protected]‘%.benet.com‘;

 

 

=======================

重置MySQL的root用户密码

 

●已经知道mysql数据库的root密码

# 方法一:在shell环境中,使用mysqladmin命令设置(需要知道原密码)

[[email protected] ~]# mysqladmin -u root -p password "123456"

 

# 方法二:在“mysql>”环境中,使用update命令,直接更新mysql库user表的数据

[[email protected] ~]# mysql -u root -p

mysql> update mysql.user set password=password(‘123456‘) where user=‘root‘;

mysql> flush privileges;

 

# 方法三:在“mysql>”环境中,使用grant命令,修改root用户的授权权限。

mysql>GRANT ALL ON *.* TO [email protected]‘localhost‘ IDENTIFIED BY ‘123456‘;

 

 

●忘记mysql数据库的root用户的密码

# 关闭mysql服务

service mysqld stop

# 或者

killall mysqld

 

# 使用myslq_safe脚本以安全模式(不加载授权表)启动mysqld服务(数据库位非默认值需要用--datadir指定)

/usr/local/mysql/bin/mysqld_safe --skip-grant-table --datadir=/var/mysql/data &

 

# 使用空密码的root用户登录数据库,重新设置root的密码

[[email protected] ~]# mysql -u root

mysql> update mysql.user set password=password(‘123456‘) where user=‘root‘;

mysql> flush privileges;


 

时间: 2024-10-12 19:49:44

Linux下Mysql 的编译安装最新版本5.6.24和详细部署的相关文章

Linux下源码编译安装rpy2

R(又称R语言)是一款开源的跨平台的数值统计和数值图形化展现工具.rpy2是Python直接调用R的第三方库,它可以实现使用python读取R的对象.调用R的方法以及Python与R数据结构转换等.这里主要介绍一下在没有网络的情况下,源码安装rpy2的一些方法,以作备忘. 1.python安装 $ wget https://www.python.org/ftp/python/2.7.6/Python-2.7.6.tgz $ tar zvxf Python-2.7.6.tgz $ cd Pytho

linux下源码编译安装mysql详解

1.redhat5环境下,首先安装编译环境 yum groupinstall -y  "Development Libraries"   "Development Tools" 2.由于源码编译mysql需要cmake命令,所以先要编译安装cmake包 首先下载cmake包,这里下载使用cmake-2.8.8.tar.gz tar xf cmake-2.8.8.tar.gz cd cmake-2.8.8 ./configure make && mak

Linux之mysql的编译安装(1)

centos6.6 编译安装MySQL5.6 [本文档所介绍的内容适用于公司测试/生产等常见的MySQL数据库环境部署] 一:环境部署前准备: 1.1相关软件以及系统 系统要求:Centos 6.6 (64位) 相关中间件:  mysql-5.6.23 1.2相关系统依赖包安装检查准备 1.2.1 检查系统自带mysql是否安装 # rpm -qa | grep mysql 如有安装,请使用以下命令卸载相关程序 # yum remove  mysql 1.2.2 安装系统相关的编译环境:mysq

linux下vim的编译安装教程

之前安装YouCompleteMe的时候遇到vim版本不兼容的问题,看网上说是需要将vim版本提升到8.0及以上,然后就开始安装最新版本的vim,安装过程中的遇到了不少问题主要集中在配置方面和缺少插件,在这里把最终的安装方法贴出来,希望能帮到需要的朋友,也是考虑到自己以后可能还要用到. step1 为了使vim支持ruby.lua.perl.python2.python3编写的插件,在正式编译安装vim之前需要在系统中安装好相关插件,否则编译vim会出错. sudo yum install ru

Linux下源码编译安装程序

一.程序的组成部分 Linux下程序大都是由以下几部分组成:     二进制文件:也就是可以运行的程序文件     库文件:就是通常我们见到的lib目录下的文件     配置文件:这个不必多说,都知道     帮助文档:通常是我们在linux下用man命令查看的命令的文档 二.linux下程序的存放目录     linux程序的存放目录大致有三个地方:     /etc, /bin, /sbin, /lib  :系统启动就需要用到的程序,这些目录不能挂载额外的分区,必须在根文件系统的分区上   

linux下cmake方式编译安装MySQL数据库

前言:MySQL数据库自5.5版本以后,就开始使用CMake编译工具进行安装. 安装环境: [[email protected] ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 6.5 (Santiago)[[email protected] ~]# mysqladmin --versionmysqladmin  Ver 8.42 Distrib 5.6.14, for Linux on x86_64 1.安

linux下mysql多实例安装(转)

转自:http://www.cnblogs.com/xuchenliang/p/6843990.html 1.MySQL多实例介绍 1.1.什么是MySQL多实例 MySQL多实例就是在一台机器上开启多个不同的服务端口(如:3306,3307),运行多个MySQL服务进程,通过不同的socket监听不同的服务端口来提供各自的服务:: 1.2.MySQL多实例的特点有以下几点 1:有效利用服务器资源,当单个服务器资源有剩余时,可以充分利用剩余的资源提供更多的服务. 2:节约服务器资源 3:资源互相

Linux 下MySQL源码安装完整版

在Linux中安装MySQL,通常为RPM与源码方式安装.对于生产环境而言,由于需要自定义诸如安装路径.数据文件位置.字符集以及支持的存储引擎等多以源码方式来进行安装.之前有写过一篇关于源码安装的文章,Linux下基于源码方式安装MySQL 5.6,但不是很完整,因此该文可以作为其补充.以下为具体安装步骤,供大家参考. 1.安装前的有关描述必备的包和工具  gcc/g++ :MySQL 5.6开始,需要使用g++进行编译.  cmake  :MySQL 5.5开始,使用cmake进行工程管理,c

Linux下Redis的编译安装

介绍 redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合).zset(sorted set --有序集合)和hash(哈希类型).这些数据类型都支持push/pop.add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的.在此基础上,redis支持各种不同方式的排序.与memcached一样,为了保证效率,数据都是缓存在内存中.区别的是redis会周期性的把更