centos 下 mysql 主从库搭建

2024-05-11 08:34:52

今天在本本上装了个mysql主从库配置,中间遇到了几个问题,不过经过搜寻资料,已经可以正常工作了。
过程写下来做个记录:

因为上次已经装过LNMP,所以只要再装一个mysql做从库就好了。重新编译mysql安装

$ tar -zxvf mysql-5.1.45.tar.gz
$ cd mysql-5.1.45
$ ./configure --prefix=/usr/local/mysql_slave --enable-assembler --with-charset=utf8 --with-extra-charsets=all --enable-thread-safe-client --with-big-tables --with-readline --with-embedded-server --with-ssl -enable-local-infile
$ make && make install
$ cd ..

$ mkdir /usr/local/mysql_slave/var
$ chown -R mysql:mysql /usr/local/mysql_slave/var
$ chgrp -R mysql /usr/local/mysql_slave

#发现/usr/local/mysql_slave/var/下的mysql和test的组均为root,修改其属组
$ chgrp -R mysql /usr/local/mysql_slave

#修改my.cnf位置
$ cp /usr/local/mysql_slave/share/mysql/my-medium.cnf /etc/my-slave.cnf
$ vi /etc/my-slave.cnf
$ :s/3306/3308/g
$ :s/tmp\/mysql.sock/tmp\/mysql-slave.sock/g

$ /usr/local/mysql_slave/bin/mysqld_safe --defaults-file=/etc/my-slave.cnf --user=mysql &
$ /usr/local/mysql_slave/bin/mysqladmin -uroot password 123456

配置主从库:

#创建mysql日志目录
$ mkdir /var/log/mysql
$ chown -R mysql:mysql /var/log/mysql

[vi /etc/my.cnf]
server-id=1
log_bin=/var/log/mysql/mysql-bin.log
binlog_do_db=test
binlog_ignore_db=mysql

[vi /etc/my-slave.cnf]
server-id=2
master-host=127.0.0.1
master-user=slave_usr
master-password=123456
master-port=3306
replicate-do-db=test

#启动测试:
$ /etc/init.d/mysql start
$ mysql -uroot -p123456
mysql > grant replication slave on *.* to 'slave_usr'@'127.0.0.1' identified by '123456';
mysql > exit;
$
$ /usr/local/mysql_slave/bin/mysqld_safe --defaults-file=/etc/my-slave.cnf --user=mysql &
$
#进入主库创建表$ mysql -uroot -p123456
mysql > use test;
mysql > create table test(`id` int primary key auto_increment, `introtext` text);
mysql > exit;

$ mysql -uroot -p123456 -P3308 -h127.0.0.1
mysql > use test;
mysql > desc test;
我们会发现从库里创建了一个和主库一样的表。成功!

但是还有以下几个问题:
1.把/usr/local/mysql_slave/share/mysql/mysql.server拷贝到/etc/init.d/mysql-slave,但是无法用/etc/init.d/mysql-slave start启动从库。我改了pid,socket,datadir,basedir,启动也加了--defaults-file,但是没有成功,还要继续检查。
2.登录从库时必须加-h127.0.0.1,不知道怎么去掉这个选项。

CentOS + Nginx + PHP + MySQL 环境搭建

一、软件环境
CentOS 5.4 :
Nginx 0.8 : http://nginx.org/download/nginx-0.8.35.tar.gz
PHP 5.2.10 : http://www.eduicc.com/soft/php-5.2.10.tar.gz
MySQL 5.4.15 : http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.45.tar.gz/from/http://mysql.ntu.edu.tw/

二、安装
  1. 准备工作
    这一步我称它为“准备工作”,其实是安装一些系统编译及其他环境
yum -y install patch make gcc gcc-c++ gcc-g77 flex bison libtool libtool-libs autoconf kernel-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel

#安装编码格式转换库
wget http://www.eduicc.com/soft/libiconv-1.13.tar.gz
tar -zxvf libiconv-1.13.tar.gz
cd libiconv-1.13
./configure --prefix=/usr/local
make && make install
cd ..

#安装libmcrypt库
wget http://www.eduicc.com/soft/libmcrypt-2.5.8.tar.gz
tar -zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure
make && make install
ldconfig
cd libltdl
./configure --enable-libltdl-install
make && make install
cd ../../

#安装php-mhash扩展库
wget http://www.eduicc.com/soft/mhash-0.9.9.9.tar.gz
tar -zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9
./configure
make && make install
cd ..
ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la
ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so
ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4
ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8
ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a
ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la
ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so
ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2
ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1

wget http://www.eduicc.com/soft/mcrypt-2.6.8.tar.gz
tar -zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8
./configure
make && make install
cd ..

2. 安装MySQL

tar -zxvf mysql-5.1.54.tar.gz
cd mysql-5.1.54
./configure --prefix=/usr/local/mysql --enable-assembler --with-charset=utf8 --enable-thread-safe-client --with-extra-charsets=all --with-big-tables --with-readline --with-ssl --with-embedded-server --enable-local-infile
make && make install
cd ..
    
#添加mysql用户和用户组
groupadd mysql
useradd -g mysql mysql
cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
/usr/local/mysql/bin/mysql_install_db --user=mysql
chown -R mysql /usr/local/mysql/var
chgrp -R mysql /usr/local/mysql/.

#设置mysql开机自启动
cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysql
chmod 755 /etc/init.d/mysql
chkconfig --level 345 mysql on

#增加mysql动态链接库文件
echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf
echo "/usr/local/lib" >>/etc/ld.so.conf
ldconfig

ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
ln -s /usr/local/mysql/include/mysql /usr/include/mysql

#添加root密码
/etc/init.d/mysql start
/usr/local/mysql/bin/mysqladmin -u root password root
/etc/init.d/mysql restart
/etc/init.d/mysql stop

#去掉mysql集群服务
chkconfig mysql-ndb off
chkconfig mysql-ndb-mgm off 
  3. 安装PHP
#我们用php-fpm来管理fastcgi
wget http://www.eduicc.com/soft/php-5.2.10-fpm-0.5.11.diff.gz
tar -zxvf php-5.2.10.tar.gz
gzip -cd php-5.2.10-fpm-0.5.11.diff.gz | patch -d php-5.2.10 -p1

! 这里我们要先将autoconf降低版本,否则可能会出现: buildconf: Your version of autoconf likely contains buggy cache code.
yum -y install autoconf213
    export PHP_AUTOCONF=/usr/bin/autoconf2.13

cd php-5.2.10
./buildconf --force
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-iconv-dir=/usr/local --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-ftp --without-pear
make ZEND_EXTRA_LIBS='-libiconv'
make install
cp php.ini-dist /usr/local/php/etc/

4. 安装nginx
#安装pcre (Perl Compatible Regular Expressions正则表达式库)
wget http://www.eduicc.com/soft/pcre-7.9.tar.gz
tar -zxvf pcre-7.9.tar.gz
cd pcre-7.9
./configure
make && make install
cd ..

tar -zxvf nginx-0.8.35.tar.gz
cd nginx-0.8.35
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make && make install

#有关nginx.conf和php-fpm.conf的配置可以参照:nginx.conf php-fpm.conf
5. 测试
我们先来写一个脚本
vi /etc/init.d/run
写入以下内容
   ulimit -SHn 51200
/usr/local/php/sbin/php-fpm start
/usr/local/nginx/sbin/nginx
   
   启动测试:
chown 0755 /etc/init.d/run
/etc/init.d/run
/etc/init.d/mysql start

  好了,在/var/www/localhost下写个phpinfo测试下吧!

转载于:https://blog.51cto.com/soulful/466796

centos 下 mysql 主从库搭建相关推荐

  1. CentOS下MySQL主从同步配置

    (转自)http://apps.hi.baidu.com/share/detail/5882847centos下MySQL主从同步配置 一.环境 主机: master操作系统:centos 5.3 I ...

  2. Windows下MySql主从配置实战教程

    Windows下MySql主从配置实战教程 MySql的主从配置教程 主库MySql的安装 1.MySQL的下载 2.MySQL配置文件的编写 3.初始化数据库 4.安装服务 5.启动MySql 6. ...

  3. CentOS下的DNS服务器搭建

    CentOS下的DNS服务器搭建 实验环境:VMware workstation 10         centos 6.4 说明: DNS是计算机域名系统或域名解析服务器(Domain Name S ...

  4. CentOS下C++开发环境搭建

    CentOS下C++开发环境搭建 vimplus github 我的环境 CentOS 7.5 64位 环境部署 vim 编辑工具 g++ 编译器 git 版本控制 gdb 调试工具 cmake 跨平 ...

  5. Centos下MySql用户管理

    Centos下MySql用户管理 1.创建用户 CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 2.用户授权 GRANT privile ...

  6. centos下MySQL Workbench连接时崩溃的解决方法

    centos下MySQL Workbench连接时崩溃的解决方法 参考文章: (1)centos下MySQL Workbench连接时崩溃的解决方法 (2)https://www.cnblogs.co ...

  7. centos mysql无法登录,解决centos下MySQL登录1045问题

    由于需要在centos下部署整个应用,自然少不了对数据库的操作.但很多人可能会遇到一些问题,比如创建用户成功,但是却无法登录. 无法登陆一般就两个原因.第一,远程访问端口没开,第二个原因就是密码错误了 ...

  8. CentOS下MySQL安装后配置和设置

    CentOS下MySQL安装后配置和设置: 1:安装完成路径: 1.数据库目录/var/lib/mysql/2.配置文件/usr/share/mysql(mysql.server命令及配置文件)3.启 ...

  9. centos中mysql启动失败,解决CentOS下mysql启动失败

    解决CentOS下mysql启动失败 今天用service mysqld start 命令启动mysql失败 查看mysql日志 tail -n 10 /var/log/mysql.log160702 ...

最新文章

  1. 远程桌面连接由于网络错误而丢失
  2. JobTracker节点后台线程之RetireJobs
  3. python 入门第二课2 file的文件操作
  4. Python自建collections模块
  5. 查询两个日期间隔天数怎么算_大厂都是怎么用Java8代替SimpleDateFormat?
  6. window php 安装zip扩展,Windows下安装php_rar 扩展,让php实现rar文件的读取和解压
  7. 【TSP】基于matlab模拟退火算法求解旅行商问题【含Matlab源码 1129期】
  8. Fixed Gear DIY整车配色 JavaScript版制作过程
  9. wamp中mysql连接数据库_wamp链接到数据库
  10. 用shell脚本写的一个简单的计算器
  11. php 读取图片内容吗,php读取图片内容输出到浏览器的代码分享
  12. 保存相片是什么图像格式?
  13. Python测试三角函数的正交性
  14. ARM服务器搭建 我的世界(MC) 1.18.2 版私服教程
  15. 微信小程序 之wxml保留小数点后两位数的方法及转化为字符串的方法
  16. xutils3.0使用
  17. 数学之美:激发思考的奥秘
  18. 运营分析:用七种维度来分析广告投放效果
  19. 从windows进入服务器
  20. django forms表单

热门文章

  1. visualstudio调试html,Visual Studio Code中调试JavaScript
  2. oracle时间类型插入,oracle 插入时间字符串 Date类型
  3. 长链接转短链接java_长链接生成短链接Java源码(调用百度接口)
  4. Spring回滚事务类型
  5. java全局变量和局部变量
  6. 以太网性能测试分析仪
  7. 网络基础:网络IP 、子网掩码 、路由器 、DNS知识分享
  8. 一文总结 CPU 基本知识
  9. ES6 解构赋值的用法笔记
  10. 微软宣布下一代集成开发环境 — Visual Studio 2019