• MySQL安装及主从配置


    系统环境:CentOS release 6.5 (Final)(最小化安装)

    MySQL版本:mysql-5.6.12

    Cmake版本:cmake-2.8.4

    说明:安装mysql先安装cmake(原因:mysql5.5以后是通过cmake来编译的)

    可以自己选择安装自己常用的工具,如lrzsz,vim等

    准备完毕后即可进行安装:

    第一步:检查是否自带安装了Mysql,如果有,则删除

    rpm –qa | grep mysql

    如果系统自带卸载自带安装的mysql:

    yum -y remove mysql-libs-5.1.71-1.el6.x86_64

    第二步:安装mysql依赖的包

    yum -y install gcc openssl-devel zlib-devel gcc-c++ autoconf automake libtool make ncurses-devel* bison

    第三步:解压并安装cmake工具

     

      cmake的重要特性之一是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译的影响,
    因此在同一个源码树上可以进行多次不同的编译,如针对不同平台编译

     

    # tar xzvf cmake-2.8.4.tar.gz

    # cd cmake-2.8.4

    # ./bootstrap

    # gmake

    # gmake install

    第四步:编译并安装MySQL(安装到/usr/mysql目录下):

    添加MySQL用户和用户组

    # mkdir /usr/mysql

    # groupadd mysql

    # useradd –g mysql mysql

    # tar zxvf mysql-5.6.12.tar.gz

    # cd mysql-5.6.12

    # cmake -j 4 . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/usr/local/mysql -DWITH_INNOBASE_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DEXTRA_CHARSETS=all -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306 -DWITH_DEBUG=0

    参数说明:

    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql //安装目录

    -DINSTALL_DATADIR=/usr/local/mysql/data //数据库存放目录

    -DSYSCONFDIR=/etc           //mysql的配置文件位置

    默认编译的存储引擎包括:csv、myisam、myisammrg和heap。若要安装其它存储引擎,可以使用类似如下编译选项:
    -DWITH_INNOBASE_STORAGE_ENGINE=1
    -DWITH_ARCHIVE_STORAGE_ENGINE=1
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1
    -DWITH_FEDERATED_STORAGE_ENGINE=1

    -DWITH_PARTITION_STORAGE_ENGINE=1 //分区的存储引擎

    若要明确指定不编译某存储引擎,可以使用类似如下的选项:
    -DWITHOUT_<ENGINE>_STORAGE_ENGINE=1
    比如:
    -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1
    -DWITHOUT_FEDERATED_STORAGE_ENGINE=1
    -DWITHOUT_PARTITION_STORAGE_ENGINE=1

    如若要编译进其它功能,如SSL等,则可使用类似如下选项来实现编译时使用某库或不使用某库:
    -DWITH_READLINE=1
    -DWITH_SSL=system
    -DWITH_ZLIB=system
    -DWITH_LIBWRAP=0

    其它常用的选项:
    -DMYSQL_TCP_PORT=3306
    -DMYSQL_UNIX_ADDR=/tmp/mysql.sock    //sock文件位置
    -DENABLED_LOCAL_INFILE=1
    -DEXTRA_CHARSETS=all       //安装所有扩展字符集
    -DDEFAULT_CHARSET=utf8    //使用utf8字符
    -DDEFAULT_COLLATION=utf8_general_ci  //校验字符
    -DWITH_DEBUG=0
    -DENABLE_PROFILING=1

    -DENABLED_LOCAL_INFILE=1    //允许从本地导入数据

    # make -j 4                //启用4个线程同时编译

    # make install

    说明:编译安装主mysql数据库的同时,可进行从mysql数据库的编译安装,重复以上的步骤即可(也可以直接将编译好的的复制一份)。

    注意事项:

    重新编译时,需要清除旧的对象文件和缓存信息。

    # make clean

    # rm -f CMakeCache.txt

    # rm -rf /etc/my.cnf(如果有该文件就删除,本人的目录中并无此文件)

    第五步:进入安装目录,将程序二进制的所有权改为root,数据目录的所有权改为mysql用户,更新授权表,并安装数据库。

    # cd /usr/local/mysql/
    # chown -R root .   //注意:后面必须得有点,当前目录及其以下

    # chown -R mysql .
    # chgrp -R mysql .
    # /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --collation-server=utf8_general_ci

    第六步:设置用户的mysql的环境变量(编辑用户家目录中的.bash_profile文件)

    # vim /root/.bash_profile

    PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/mysql/lib

    使该文件生效:# source .bash_profile

    使所有用户都生效的方法:

    # vim /etc/bashrc

    在最后加入如下的东西:

    PATH=$PATH:/usr/local/mysql/bin

    第七步:将mysql的启动服务添加到系统服务中并设置开机自启动

    主要是将mysql.server拷贝到/etc/rc.d/init.d中,命名为mysql。在有的系统中,源码包安装的mysql,mysql.server在/usr/local/mysql/support-files/mysql.server中。

    # cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql

    # chkconfig --add mysql        添加服务

    # chkconfig --list          显示服务列表

    如果看到mysql的服务,并且3,4,5都是on的话则成功,如果是off,则键入

    # chkconfig –level 345 mysql on

    # reboot                    重启电脑看下效果哦

    # netstat -na | grep 3306            如果看到有监听说明服务启动了
    如果远程利用工具无法连接数据则要关闭防火墙
    # /etc/rc.d/init.d/iptables stop
    或在/etc/sysconfig/iptables文件中添加一条规则后重启防火墙即可:
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

    第八步:配置主数据库文件/usr/local/mysql/my.cnf

    log_bin=/usr/local/mysql/data/mysql3306-bin

    binlog-ignore-db=mysql,test 避免同步mysql用户配置,以免不必要的麻烦

    basedir=/usr/local/mysql

    datadir=/usr/local/mysql/data

    port=3306

    server_id=811

    socket=/usr/local/mysql/data/mysql3306.sock

    最后添加:lower_case_table_names=1  设置表名的大小写区分:0,区分大小写; 1,不区分

    修改完成后重启mysql数据库服务使其生效

    第八步:配置从数据

    配置从数据库文件/usr/local/mysql3307/my.cnf

    basedir =/usr/local/mysql3307

    datadir =/usr/local/mysql3307/data

    port =3307

    server_id =812

    socket =/usr/local/mysql3307/data/mysql3307.sock

    pid-file =/usr/local/mysql3307/data/pid3307.pid

    最后添加:lower_case_table_names=1  设置表名的大小写区分:0,区分大小写; 1,不区分

    第九步:修改完成后重启mysql3307数据库服务使其生效

    登录mysql3307从服务器

    # mysql -u root -p --port=3307 --protocol=TCP

    执行以下命令:

    mysql>CHANGE MASTER TO

    MASTER_HOST='192.168.1.171',

    MASTER_USER='root',

    MASTER_PASSWORD='fanjinbao',

    MASTER_PORT=3306,

    MASTER_LOG_POS=120; 去主服务器查询所得show master status G;

    Position: 120

    说明:

    MASTER_HOST:主服务器的IP。MASTER_USER:配置主服务器时建立的用户名
    MASTER_PASSWORD:用户密码
    MASTER_PORT:主服务器mysql端口,如果未曾修改,默认即可。

    重新启动slave服务

    Mysql>Start slave;

    至此主从mysql数据库配置完毕,可通过在从数据库中输入

    show slave status G;

    如果下面两个选项都是yes说明配置成功:

    Slave_IO_Running: Yes

    Slave_SQL_Running: Yes

    也可以在主数据库中创建个数据库看从数据库中是否存在。

    mysql默认是不可以通过远程机器访问的,通过下面的配置可以开启远程访问

    # mysql -u root -p --port=3307 --protocol=TCP

    mysql>use mysql;

    删除匿名用户和ipv6用户

    mysql> drop user 'root'@'::1';

    mysql> drop user ''@'localhost';

    mysql> drop user ''@'master.fansik.com';

    为了测试方便这里是允许root用户从任何地方登陆,生产环境中最好指定ip

    mysql>GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "root";

    mysql>update user set Password = password('fanjinbao') where User='root';

    mysql>flush privileges;

    mysql>exit;

    如果要基于MySQL做开发:导出头文件:

    # ln -sv /usr/local/mysql/include/ /usr/include/mysql

    导出库文件:

    # vim /etc/ld.so.conf.d/mysql.conf加入:/usr/local/mysql/lib

    # ldconfig -v

    查看是否添加成功:

    # ldconfig -p | grep mysql

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

    # /usr/local/mysql/bin/mysql_secure_installation

  • 相关阅读:
    867. Transpose Matrix
    896. Monotonic Array
    Java并发包中线程池ThreadPoolExecutor原理探究
    Java中的线程协作之Condition
    Java中的读写锁
    Java中的锁——Lock和synchronized
    Java中的队列同步器AQS
    Java并发编程基础之volatile
    leetcode-数组中只出现一次的数字
    leetcode-比特位计数
  • 原文地址:https://www.cnblogs.com/fansik/p/5270334.html
Copyright © 2020-2023  润新知