2、mysql编译安装
2.1前言:
此文档介绍的是cmake编译安装的方式;
二进制的安装方式在linux运维_集群_01中有详细的安装说明(已经编译完成,进行初始操作即可)
初始化操作时需要对编译好的mysql进行一下备份,防止初始化错误而出现问题,导致需要重新编译mysql;
1、原始的编译方式编译:
在当下的互联网企业中,./configure 编译安装的方法已经很少使用了,原因是第一条产品线的产品(MySQL5.2.xx及以前的产品系列)用得
越来越少了,被第二条产品线(MySQL5.4.xx及以后的产品系列)的产品逐渐替代了,因此,不建议读者再使用第一条产品线的产品作为对外的业务库。
tar -zxf mysql-5.1.73.tar.gz
cd mysql-5.1.73
./configure \
--prefix=/application/mysql5.1.73 \
--with-unix-socket-path=/application/mysql5.1.73/tmp/mysql.sock \
--localstatedir=/application/mysql5.1.73/data \
--enable-assembler \
--enable-thread-safe-client \
--with-mysqld-user=mysql \
--with-big-tables \
--without-debug \
--with-pthread \
--enable-assembler \
--with-extra-charsets=complex \
--with-readline \
--with-ssl \
--with-embedded-server \
--enable-local-infile \
--with-plugins=partition,innobase \
--with-mysqld-ldflags=-all-static \
--with-client-ldflags=-all-static
make
make install
ln -s/application/mysql-5.1.73/ /application/mysql
安装到这里,MySQL数据库还不能正常启动使用,还需要进行初始化数据库等工作;
2、为什么使用cmake编译源码:
cmake编译工作可以在另一个指定的目录中而非源码目录中进行,源码目录不受任何一次编译的影响,
因此在同一个源码树上可以进行多次不同的编译,如针对于不同平台编译,可以跨平台的编译器。
考虑到MySQL5.4.xx及以后系列产品的特殊性,其编译方式和早期的第一条产品线的有所不同,这里采用cmake或gmake方式的编译安装;
2.2、查看系统内核和版本:
[root@backup ~]# uname -r
2.6.32-754.3.5.el6.x86_64
[root@backup ~]# uname -m
x86_64
2.3、上传cmake和mysql软件包:
[root@backup ~]# mkdir /root/tools/ -p
[root@backup ~]# cd tools
[root@backup tools]# rz -y
rz waiting to receive.
Starting zmodem transfer. Press Ctrl+C to cancel.
Transferring cmake-2.8.8.tar.gz...
100% 5558 KB 5558 KB/sec 00:00:01 0 Errors
Transferring mysql-5.5.32.tar.gz...
100% 24019 KB 12009 KB/sec 00:00:02 0 Errors
[root@backup tools]# tar -xzf cmake-2.8.8.tar.gz
[root@backup tools]# tar -xzf mysql-5.5.32.tar.gz
2.4、编译安装cmake:
[root@backup tools]# cd cmake-2.8.8
[root@backup cmake-2.8.8]# ./configure
CMake has bootstrapped. Now run gmake.
[root@backup cmake-2.8.8]# gmake
[100%] Built target foo
[root@backup cmake-2.8.8]# echo $?
0
[root@backup cmake-2.8.8]# gmake install
-- Installing: /usr/local/share/aclocal/cmake.m4
2.5、安装mysql相关依赖包:
[root@backup cmake-2.8.8]# yum install ncurses-devel -y
[root@backup cmake-2.8.8]# rpm -qa ncurses-devel
ncurses-devel-5.7-4.20090207.el6.x86_64
2.5、编译安装mysql:
创建软件安装的目录:
[root@backup ~]# mkdir /application -p
1、创建虚拟用户mysql用户和mysql组:
[root@backup ~]# groupadd mysql
[root@backup ~]# useradd mysql -Ms /sbin/nologin -g mysql
2、配置参数:
[root@backup cmake-2.8.8]# cd ../mysql-5.5.32
[root@backup mysql-5.5.32]# cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.34 \
-DMYSQL_DATADIR=/application/mysql-5.6.34/data \
-DMYSQL_UNIX_ADDR=/application/mysql-5.6.34/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DENABLED_LOCAL_INFILE=ON \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITHOUT_PARTITION_STORAGE_ENGINE=1 \
-DWITH_FAST_MUTEXES=1 \
-DWITH_ZLIB=bundled \
-DWITH_SSL=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DWITH_READLINE=1 \
-DWITH_DEBUG=0
-- Performing Test HAVE_IB_GCC_ATOMIC_BUILTINS - Success
-- Performing Test HAVE_IB_ATOMIC_PTHREAD_T_GCC
-- Performing Test HAVE_IB_ATOMIC_PTHREAD_T_GCC - Success
-- Check size of pthread_t
-- Check size of pthread_t - done
-- Performing Test HAVE_PEERCRED
-- Performing Test HAVE_PEERCRED - Success
-- Configuring done
-- Generating done
-- Build files have been written to: /root/tools/mysql-5.5.32
[root@backup mysql-5.5.32]# echo $?
0
4、编译:
[root@backup mysql-5.5.32]# make
[root@backup mysql-5.5.32]# echo $?
0
5、安装:
[root@backup mysql-5.5.32]# make install
[root@backup mysql-5.5.32]# echo $?
0
6、配置软件的属主和属组:
[root@backup application]# ln -s mysql-5.6.34 mysql
[root@backup application]# chown -R mysql:mysql mysql/
7、选择配置文件:
#测试环境可以选择my-small.cnf,生产环境根据硬件的需求选择,列如:my-innodb-heavy-4G.cnf
[root@backup application]# cp mysql/support-files/my-small.cnf /etc/my.cnf
cp:是否覆盖"/etc/my.cnf"? y
8、修改/tmp/目录的权限:
[root@backup application]# chmod 1777 /tmp
[root@backup application]# ls -ld /tmp
drwxrwxrwt. 3 root root 4096 2月 15 11:05 /tmp
9、初始化mysql:
[root@backup application]# cd mysql/scripts/
#如果mysql初始化有问题,可以删除/application/mysql/data/*下面的所有内容,然后初始化即可;
[root@backup scripts]# ./mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data/ --user=mysql
Installing MySQL system tables...
OK
Filling help tables...
OK
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/application/mysql/bin/mysqladmin -u root password 'new-password'
/application/mysql/bin/mysqladmin -u root -h backup password 'new-password'
Alternatively you can run:
/application/mysql/bin/mysql_secure_installation
You can start the MySQL daemon with:
cd /application/mysql ; /application/mysql/bin/mysqld_safe &
You can test the MySQL daemon with mysql-test-run.pl
cd /application/mysql/mysql-test ; perl mysql-test-run.pl
[root@backup scripts]# echo $?
0
9、配置环境变量:
[root@backup scripts]# cd /application/
[root@backup application]# echo 'export PATH=/application/mysql/bin/:$PATH' >>/etc/profile
[root@backup application]# tail -1 /etc/profile
export PATH=/application/mysql/bin/:$PATH
[root@backup application]# source /etc/profile
[root@backup application]# which mysqldump
/application/mysql/bin/mysqldump
10、启动mysql:
[root@backup application]# cp -a mysql/support-files/mysql.server /etc/init.d/mysqld
[root@backup application]# cd /etc/init.d/ &&
[root@backup init.d]# chkconfig --add mysqld
[root@backup init.d]# cd -
[root@backup application]# chmod u+x /etc/init.d/mysqld
[root@backup application]# /etc/init.d/mysqld start
Starting MySQL.... SUCCESS!
[root@backup application]# netstat -tunlp | grep "3306"
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 29800/mysqld
[root@backup init.d]# chkconfig --list mysqld
mysqld 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
10、配置mysql密码:
默认的情况下,mysql安装完成后是没有密码就可以登录的:
[root@backup application]# mysqladmin -u root password '123456'
[root@backup application]# mysql -uroot -p123456
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.5.32 Source distribution
mysql>
11、优化mysql:
(1)优化mysql的权限表:
mysql> select user,host from mysql.user;
+------+-----------+
| user | host |
+------+-----------+
| root | 127.0.0.1 |
| root | ::1 |
| | backup |
| root | backup |
| | localhost |
| root | localhost |
+------+-----------+
mysql>delete from mysql.user where user='';
mysql>delete from mysql.user where host='::1';
mysql>delete from mysql.user where host='backup';
mysql> select user,host from mysql.user;
+------+-----------+
| user | host |
+------+-----------+
| root | 127.0.0.1 |
| root | localhost |
+------+-----------+
授权其它的管理员:
把root管理员干掉,添加新的管理员,可以不使用;
mysql> grant all privileges on *.* to system@'localhost' identified by '123456' with grant option;
(2)删除多余的数据库:
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
mysql> drop database test;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
2.6、总结:
1、安装总结:
mysql编译安装后生成的就是二进制mysql文件包,然后进行mysql初始化的安装操作;
网上下载的mysql二进制软件包就是mysql二进制包编译后得到的,只不过自己编译生
成的二进制包可以自己配置相关的设置,然后对mysql进行初始化的操作;
mysql的编译安装和二进制安装,后期对mysql进行初始化操作时的方法都是一样的,设置mysql软件
包的属主和属组、复制配置文件、进行初始化、配置环境变量、启动mysql、设置mysql的登录密码;
2、登录mysql故障解决办法:
pkill mysql
rm -rf /application/mysql/data/*
/application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data/ --user=mysql
直到看到下面两行中的OK时就可以了:
Installing MySQL system tables...
OK
Filling help tables...
OK
3、mysql编译错误:
(1)ncurses-devel库没有安装:
(2)编译中没有开启ssl参数的配置:
2、mysql编译安装的更多相关文章
- mysql 编译安装
mysql 编译安装方式: ```cd /home/oldboy/tools``` 创建 目录 if not have then mkd ...
- centos mysql 编译安装
centos mysql 编译安装 1.安装 创建MySQL用户 sudo useradd mysql 下载MySQL的源码包,我们这里使用的时5.5.18 安装依赖 sudo yum -y inst ...
- Nginx PHP MySql 编译安装
以CentOS5.6为平台编译安装.确保系统已经安装gcc/gcc-c++编译器! 1.Nginx-1.0.14 2.PHP-5.3.10 3.MySql-5.1.61 安装相关依赖开发库: auto ...
- Mysql编译安装及优化
采取编译安装的方法,其好处为:编译安装与平台无关,安装的MySQL目录独立,维护起来方便,而且拥有更好的性能. 环境:CentOS release 6.9 (Final) x86_64 1)下载my ...
- mysql编译安装(详细)(转载)
mysql编译安装(详细) 一.编译安装MySQL前的准备工作 安装编译源码所需的工具和库 yum install gcc gcc-c++ ncurses-devel perl 安装cmake,从 ...
- rpm安装MySQL5.5后配置,在centos5上;mysql编译安装在centos6.5上;
[1] 没有/etc/my.cnf: rpm包安装的MySQL是不会安装/etc/my.cnf文件的:处理:cp /usr/share/mysql/my-huge.cnf /etc/my.cnf [2 ...
- 20190418 CentOS7实用技能综合:系统安装 + WinScp客户端连接 + 防火墙端口号iptables + Nginx编译安装 + MySQL编译安装 + Redis编译安装 + MongoDB编译安装 + ActiveMQ/RocketMQ/RabbitMQ编译安装 + ...各类常用生产环境软件的编译安装
系统安装 + WinScp客户端连接 + 防火墙端口号iptables + Nginx编译安装 + MySQL编译安装 + Redis编译安装 + MongoDB编译安装 + ActiveMQ/Roc ...
- Linux(centos)下mysql编译安装教程
Linux下mysql编译安装教程 #查看linux发行版本 cat /etc/issue #查看linux内核版本号 uname -r 本文測试环境centOS6.6 一.Linux下编译安装MyS ...
- MySQL 编译安装并且开启DEBUG模式
因为想分析下mysql中一些操作的内部执行过程,单纯的看源码太枯燥了,所以决定结合mysql的执行过程来分析,mysql作为一款成熟的数据库软件,在设计的时候就考虑到了调试的问题,只是想开启调试模式的 ...
随机推荐
- 常用的HTML标记
一.格式标记 1.<br> <br>是一个单标记,用来强制换行. 2.<p> <p>是双标记.用来换分段落. 3.<center> < ...
- 强哥ThinkPHP学习笔记
TP框架:1.模板引擎2.MVC设计模式3.常用操作类 模板引擎和框架区别1.模板引擎只是框架中用来做php和html分离 MVC设计模式M model 数据模型V view 视图C control ...
- Installing SFTP/SSH Server on Windows using OpenSSH
Installing SFTP/SSH Server 1. On Windows 10 version 1803 and newer In Settings app, go to Apps > ...
- 用于监视Linux上的内存使用情况的Bash脚本
用于监视Linux上的内存使用情况的Bash脚本 2019-06-17 11:32:45作者:戴进稿源:云网牛站 在本文中,我们添加了两个shell脚本来监视Linux操作系统上的内存利用率,即用于监 ...
- 控制器网关/dns设置
如果控制器ping内网可以,但是ping不同外网,十有八九是因为网关的问题,可以使用route命令设置网关,如设置为192.168.31.1(不是192.168.31.0),route add def ...
- SystemVerilog MCDF验证结构
MCDF的设计和验证花费的时间:(工作中假设的时间) design cycle time ==10days how about 验证?verify? 模块越往上(大')验证花费的时间越来越大,但是 ...
- Django(39)使用redis配置缓存
前言 动态网站的基本权衡是,它们是动态的.每次用户请求页面时,Web服务器都会进行各种计算 - 从数据库查询到模板呈现再到业务逻辑 - 以创建站点访问者看到的页面.从处理开销的角度来看,这比标准的 ...
- Jenkins 基础篇 - 任务创建
前面了解了 Jenkins 上各种任务的区别后,我们就来实践应用下,先创建一个[文件夹]类型的任务,将我们目前的一些基础的演示任务[移动]到文件夹里面去,这样可以先做个简单的分类. 新建一个[文件夹] ...
- Linux - last 命令
前言 为啥写这篇?因为听 grep.sed 教程的时候有这个命令 栗子 加上工作中,运维给我排查问题的时候也用到了,感觉挺重要,先了解为敬! 命令作用 显示上次登录用户的列表 这个是在 Linux 下 ...
- NVIDIA GPU上的随机数生成
NVIDIA GPU上的随机数生成 NVIDIA CUDA随机数生成库(cuRAND)提供高性能的GPU加速的随机数生成(RNG).cuRAND库使用NVIDIA GPU中提供的数百个处理器内核,将质 ...