php在编译时需要mysql的配置,这样PHP远程连接mysql才有用。
1.创建mysql用户和相关目录(配置文件里设置的目录)

  1. groupadd mysql
  2. useradd -g mysql -M -s /bin/nologin mysql

  

  1. mkdir /usr/local/mysql #mysql安装目录
  2. mkdir /data/dbdata -p #mysql数据目录
  3. mkdir -p /data/dbdata/binlog #mysql二进制日志目录
  4. mkdir -p /data/dbdata/log #mysql慢日志、错误日志、普通日志存放目录
  5. touch /data/dbdata/log/mysql-error.log #配置文件中的错误日志路径是什么就创建什么文件
  6. mkdir -p /opt/mysqltmp #mysql临时表目录
  7. chown mysql:mysql /usr/local/mysql -R
  8. chown mysql:mysql /data/dbdata -R
  9. chown mysql:mysql /opt/mysqltmp
  10. chown mysql:mysql /data/dbdata/log/mysql-error.log

   

2.安装依赖包

  1. yum install ncurses ncurses-devel libgcc compat-gcc libtool libtool-ltdl-devel cmake bison perl gcc gcc-c++ -y

有些安装过的包可以忽略

3.mysql源码包获取和编译安装

官网www.mysql.com     community-->source code-->Generic Linux

  1. cd /download
  2. tar xf mysql-5.6.37.tar.gz
  3. cd mysql-5.6.37
  4. cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/dbdata -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1-DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_EXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_SSL=yes
  5. #注:重新运行配置,需要删除CMakeCache.txt文件
  6. make && make install

  

##################编译参数解释: ############################################# 

  1. #一般选项:
  2. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
  3. #指定基本安装目录,这个参数可以在服务启动时候用--basedir参数指定
  4. -DMYSQL_DATADIR=/data/dbdata
  5. #指定mysql data文件存放目录
  6. #存储引擎:
  7. -DWITH_INNOBASE_STORAGE_ENGINE=
  8. -DWITH_BLACKHOLE_STORAGE_ENGINE=
  9. -DWITH_ARCHIVE_STORAGE_ENGINE=
  10. -DWITH_PARTITION_STORAGE_ENGINE=
  11. -DWITH_PERFSCHEMA_STORAGE_ENGINE=
  12. -DWITH_MYISAM_STORAGE_ENGINE=
  13. #存储引擎选项:
  14. MyISAMMERGEMEMORY,和CSV引擎是默认编译到服务器中,并不需要明确地安装。
  15. 静态编译一个存储引擎到服务器,使用-DWITH_engine_STORAGE_ENGINE=
  16. 可用的存储引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), PERFSCHEMA (Performance Schema)
  17.  
  18. #功能选项:
  19. -DMYSQL_UNIX_ADDR=/usr/local/mysql/tmp/mysql.sock
  20. #指定sock文件存放位置,默认位置是/tmp/mysql.sock
  21. -DMYSQL_TCP_PORT=
  22. #监听端口
  23. -DENABLED_LOCAL_INFILE=
  24. #Whether to enable LOCAL capability in the client library fo r LOAD DATA INFILE.
  25. -DWITH_EXTRA_CHARSETS=all
  26. -DDEFAULT_CHARSET=utf8
  27. -DDEFAULT_COLLATION=utf8_general_ci
  28. -DWITH_SSL=yes
  29. #ssl支持
  30. -DENABLE_DOWNLOADS=
  31. #是否要下载可选的文件。例如,启用此选项(设置为1),cmake将下载谷歌所使用的测试套件运行单元测试

编译参数解释

#####################################################################################

4.初始化

  1. /usr/local/mysql/scprit/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/dbdata

5.服务启动脚本

  1. cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
  2. chmod 755 /etc/init.d/mysqld

多个mysql实例不可能共用同一个安装目录和数据存放目录,每个mysql实例都应有自己对应的目录,多实例需要修改mysql服务启动脚本中的目录位置,,如果不是多实例这一步可免

  1. vim /etc/init.d/mysqld
  2. basedir=/usr/local/mysql
  3. datadir=/data/mysqldb

6.配置文件 

在MySQL5.5数据库中,可以没有配置文件,在这种情况下,MySQL会安装编译时的默认参数设置启动实例用以下命令查看,当MYSQL数据库实例启动时,它会在哪些位置查找配置文件

  1. /usr/local/mysql/bin/mysql --help | grep my.cn
  2. order of preference, my.cnf, $MYSQL_TCP_PORT,
  3. /etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf

MySQL里面有启动参数、系统参数,启动参数通过show variables无法查询到,可以在mysqld的选项中查到,例如关于二进制日志有Startup Options Used with Binary Logging、System Variables Used with Binary Logging两种参数

配置文件my.cnf详解:

  1. [client]
  2. port = //客户端所连接的端口号
  3. socket = /tmp/mysql.sock //客户端所连接的sock文件存放位置
  4.  
  5. [mysqld]
  6. #base
  7. port = //mysql的默认端口号,可以修改
  8. user = mysql //mysql用户指定
  9. socket = /tmp/mysql.sock //连接所使用的端口号
  10. pid-file = /tmp/mysql.pid //进程运行的主PID文件
  11. basedir = /usr/local/mysql //Mysql安装目录
  12. datadir = /data/mysqldb //Mysql数据目录
  13. tmpdir = /opt/mysqltmp //Mysql临时表目录
  14. open_files_limit = //打开文件句柄的数量
  15. explicit_defaults_for_timestamp
  16. sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
  17. federated //支持sql语法和数据校验等.sql_mode三种模式
  18. ANSI模式、宽松模式,对插入数据进行校验,如果不符合定义类型或长度,对数据类型调整或者截断保存,报“warning”警告
  19.  
  20. TRADITIONAL模式、严格模式,当向mysql数据插入数据时、进行数据的严格校验,保证数据不能插入,报error错误,用于事物时,会进行事物回滚.
  21.  
  22. STRICT_TRANS_TABLES模式。严格模式,进行数据的严格校验,错误数据不能插入,报error错误.
  23.  
  24. server_id = //主从复制唯一的服务辨识号,数值位于 1 到
  25. #replicate-do-db = posp //定义唯一复制的库
  26. #replicate-ignore-db = mysql //定义唯一复制的库
  27. #log-slave-updates = //这个选项之再主从复制。从服务器上打开复制主的信息
  28. event_scheduler= //打开时间调度器
  29.  
  30. max_connections = //#最大并发连接数 ,增大该值需要相应增加允许打开的文件描述符数
  31. max_connect_errors = //如果某个用户发起的连接error超过该数值,则该用户的下次连接将被阻塞,
  32. interactive_timeout = //服务器关闭交互连接前等待活动的秒数
  33. wait_timeout = //服务器关闭非交互连接之前等待活动的秒数
  34. skip-name-resolve //#garnt时,必须使用ip,不能使用主机名,禁用DNS解析
  35. sync_binlog= //可以保证事务的安全。缺省为0
  36. log_bin_trust_function_creators = //打开mysql可自定义函数
  37.  
  38. character-set-server = utf8 //设定字符集
  39. default_storage_engine = InnoDB //定义默认引擎
  40.  
  41. #log
  42. log-bin = /data/mysqldb/binlog/mysql-bin //指定binlog二进制日志的文件名称
  43. binlog_cache_size = 32m //binlog的缓存大小
  44. max_binlog_cache_size = 10g //设定最大的binlog缓存
  45. binlog_stmt_cache_size = 32m //设定最小的binlo缓存
  46. table_open_cache = //表描述符缓存大小,可减少文件打开/关闭次数
  47. max_binlog_size = 1024m //设置binlog日志文件最大为1G
  48. binlog_format = mixed //binlog日志格式.
  49. log_output = FILE //确认输出到日志文件
  50. log-error = /data/mysqldb/log/mysql-error.log //mysql系统错误日志输出
  51. slow_query_log = //打开慢日志记录
  52. slow_query_log_file = /data/mysqldb/log/mysql-slow_query.log //定义慢日志输出的路径
  53. general_log = //定义普通日志
  54. general_log_file = /data/mysqldb/log/mysql-general-query.log //定义普通日志输出的路径
  55. expire-logs-days = //日志保留的时间为30天
  56. relay-log = /data/mysqldb/binlog/relay-bin //定义reloa_log复制的地址
  57. relay-log-index= /data/mysqldb/binlog/relay-bin.index //定义reloa_log索引
  58.  
  59. #buffer
  60. sort_buffer_size = 2m //#MyISAM表发生变化时重新排序所需的缓冲。一般64M足矣
  61. read_buffer_size = 2m //用来做MyISAM表全表扫描的缓冲大小.
  62. read_rnd_buffer_size = 2m //#当在排序之后,从一个已经排序好的序列中读取行时,行数据将从这个缓冲中读取来防止磁盘寻道
  63. join_buffer_size = 2m //# InnoDB用来缓存数据和
  64.  
  65. net_buffer_length = 16k //执行mysqldump时,net buffer length的最大上限是16Mb,默认值是1Mb
  66. max_allowed_packet = 512m //每个连接独立的大小.大小动态增加
  67. bulk_insert_buffer_size = 32m //# 当突发插入被检测到时此缓冲将被分配用于myisam
  68. max_heap_table_size = 512m//#内存表的大小
  69. tmp_table_size = 512m//# 内部(内存中)临时表的最大大小
  70. thread_cache_size = //#缓存可重用的线程数,可以适当的调整
  71. query_cache_size = 256m //#指定MySQL查询结果缓冲区的大小。调优可以适当调整
  72. query_cache_limit = 10m //#缓存单条SQL的结果集上限。默认4KB。调优可以适当调整
  73. query_cache_min_res_unit = 4k
  74. key_buffer_size = 16m //#关键词缓冲的大小, 一般用来缓冲MyISAM表的索引块
  75. myisam_sort_buffer_size = 64m //# 这在每个线程中被分配.所以在设置大值时需要小心
  76. myisam_max_sort_file_size = 10g //MySQL重建索引时所允许的最大临时文件的大小如果文件大小比此值更大,索引会通过键值缓冲创建(更慢)
  77. myisam_repair_threads = //#如果一个表拥有超过一个索引, MyISAM
  78.  
  79. #innodb
  80. innodb_file_per_table = #//#可以修改InnoDB为独立表空间模式,每个数据库的每个表都会生成一个数据空间
  81. innodb_data_file_path = ibdata1:2048M:autoextend //#如果你只有单个逻辑驱动保存你的数据,一个单个的自增文件就足够好了
  82. innodb_log_file_size = 128m //#在日志组中每个日志文件的大小,
  83. innodb_log_files_in_group = //# 在日志组中的文件总数. 通常来说2~3是比较好的
  84. innodb_buffer_pool_size = 1g //innodb缓存池大小
  85. innodb_buffer_pool_instances = -
  86. innodb_max_dirty_pages_pct = //#在InnoDB缓冲池中最大允许的脏页面的比例. 60-90都可以
  87. #innodb_thread_concurrency =
  88. innodb_flush_method = O_DIRECT
  89. innodb_log_buffer_size = 16m # 用来缓冲日志数据的缓冲区的大小. 当此值快满时, InnoDB将必须刷新数据到磁盘上
  90. innodb_flush_log_at_trx_commit =
  91. 0代表日志只大约每秒写入日志文件并且日志文件刷新到磁盘# 2代表日志写入日志文件在每次提交后,但是日志文件只有大约每秒才会刷新到磁盘上
  92.  
  93. [mysql]
  94. no-auto-rehash #可以在命令可以使用tab键补齐
  95. prompt = (\u@\h) [\d]\_ #在Mysql命令显示主机名字
  96. default-character-set = utf8 //设定字符集合

my.cnf

touch /data/dbdata/mysql-error.log

chown mysql:mysql /data/dbdata/mysql-error.log

7.启动服务和设置环境变量

  1. #:vim /etc/profile
  2. 文件末尾加上以下语句:
  3.  
  4. MYSQL=/usr/local/mysql/bin
  5. PATH=$PATH:$MYSQL
  6. export PATH
  7.  
  8. #:source /etc/profile //使配置生效  

 启动服务:

  1. /etc/init.d/mysqld start

进入数据库:

  1. mysql -uroot
  2. 若没有设置第七步的环境变量,进入数据库命令为:
  3. /usr/local/mysql/bin/mysql -uroot

  

#######################

遇到的错误
首先看日志文件
删除/data/dbdata下的三个文件
============
注意:
log_slave_updates
主从复制的时候。在主(master)服务器上关闭此选项,在从(slave)上面开启此选项  

  

 

  

zabbix准备:mysql安装的更多相关文章

  1. RHEL6 最小化系统 编译安装部署zabbix (mysql)

    RHEL6 最小化系统 编译安装部署zabbix (mysql)官方说明详细见:https://www.zabbix.com/documentation/4.0/manual/installation ...

  2. Centos6.7 安装zabbix+apache+mysql教程(第一篇)

    Centos6.7 安装zabbix+apache+mysql教程 blog地址: http://www.cnblogs.com/caoguo ### 基本包安装 ### [root@ca0gu0 ~ ...

  3. zabbix 3.0 安装 ubuntu环境

    zabbix 3.0 安装 标签(空格分隔): 开发 [TOC] 下载deb # wget http://repo.zabbix.com/zabbix/3.0/ubuntu/pool/main/z/z ...

  4. [转]Zabbix 3.0 安装笔记

    Zabbix 3.0 只支持CentOS 7.0以上版本,所以先在虚拟机中安装好CentOS 7.0 x64,并设置好IP,允许虚拟机联网. 1.安装MySQL 从最新版本的linux系统开始,默认的 ...

  5. Zabbix 3.0 安装笔记

    Zabbix 3.0 只支持CentOS 7.0以上版本,所以先在虚拟机中安装好CentOS 7.0 x64,并设置好IP,允许虚拟机联网. 1.安装MySQL 从最新版本的linux系统开始,默认的 ...

  6. zabbix3.0.4 部署之三 (LNMP > Mysql 安装)

    MySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具. 因此,我们首先要在系统中源码编译安装cmake工具. 接下来的安装过程中会遇到错误,我们 ...

  7. zabbix监控MySQL

    通过使用mysql_performance_monitor软件包实现zabbix对mysql的监控. 1.安装依赖软件.yum install perl-File-Which perl-libwww- ...

  8. centos shell编程6一些工作中实践脚本 nagios监控脚本 自定义zabbix脚本 mysql备份脚本 zabbix错误日志 直接送给bc做计算 gzip innobackupex/Xtrabackup 第四十节课

    centos   shell编程6一些工作中实践脚本   nagios监控脚本 自定义zabbix脚本 mysql备份脚本 zabbix错误日志  直接送给bc做计算  gzip  innobacku ...

  9. Zabbix概念、安装以及快速入门

    Zabbix is an enterprise-class open source distributed monitoring solution.[1] Zabbix是一个企业级的.开源的.分布式的 ...

随机推荐

  1. java多线程系列(四)---ReentrantLock的使用

    Lock的使用 前言:本系列将从零开始讲解java多线程相关的技术,内容参考于<java多线程核心技术>与<java并发编程实战>等相关资料,希望站在巨人的肩膀上,再通过我的理 ...

  2. 关于Solaris 的磁盘的分区

    也许是深受LINUX  Windows  fdisk 影响,每次看完Solaris的format命令,总是云里雾里.我今天总结一下,各位给点指点 一. Linux.Windows  传统的磁盘区层级, ...

  3. Scala学习笔记(二):object、伴生对象和基本类

    object object 是只有一个实例的类.它的定义与Java中的class类似,如: // 单例对象 object AppEntry { def main(args: Array[String] ...

  4. Dapper的基本使用,Insert、Update、Select、Delete

    简介 Dapper是.NET下一个micro的ORM,它和Entity Framework或Nhibnate不同,属于轻量级的,并且是半自动的.也就是说实体类都要自己写.它没有复杂的配置文件,一个单文 ...

  5. [IR] Dictionary Coding

    [数据压缩]LZ77算法原理及实现 [数据压缩]LZ78算法原理及实现 Lempel–Ziv–Welch 年发表的论文<A Universal Algorithm for Sequential ...

  6. 【python】关键网站

    https://pypi.org https://www.python.org/search/?q=pyhanlp&submit= https://www.lfd.uci.edu/~gohlk ...

  7. ImportError: libmysqlclient_r.so.16: cannot open shared object file: No such file or directory

    在开发一个python项目是,需要用到mysql,但是, 安装完mysql-python后import加载模块提示以下错误: ImportError: libmysqlclient_r.so.16: ...

  8. Unity3D Shader 模型流光效果

    Shader "Custom/FlowColor" { Properties { _MainTex ("Base (RGB)", 2D) = "whi ...

  9. objective-c启用ARC时的内存管理 (循环引用)

    PDF版下载:http://download.csdn.net/detail/cuibo1123/7443125          在Objective-C中,内存的引用计数一直是一个让人比较头疼的问 ...

  10. 关于OpenJDK和Orcale JDK区别

    一.环境Centos 今天搞tomcat发现了一个问题,众所周知,tomcat需要java环境支持,然后我今天就想着尝试yum安装java,命令 yum install -y java* 确实可以安装 ...