Mysql 安装和配置

Mysql 安装

  • Mysql 安装
    • 官网:http://www.mysql.com/
    • 官网下载:http://dev.mysql.com/downloads/mysql/
    • 官网 5.5 下载:http://dev.mysql.com/downloads/mysql/5.5.html#downloads
    • 官网 5.6 下载:http://dev.mysql.com/downloads/mysql/5.6.html#downloads
    • 官网 5.7 下载:http://dev.mysql.com/downloads/mysql/5.7.html#downloads
    • 官网帮助中心:http://dev.mysql.com/doc/refman/5.6/en/source-installation.html
    • 此时(20160502) Mysql 5.5 最新版本为:5.5.48
    • 此时(20160502) Mysql 5.6 最新版本为:5.6.29
    • 此时(20160502) Mysql 5.7 最新版本为:5.7.11
    • 我个人习惯 /opt 目录下创建一个目录 setups 用来存放各种软件安装包;在 /usr 目录下创建一个 program 用来存放各种解压后的软件包,下面的讲解也都是基于此习惯
    • 我个人已经使用了第三方源:EPEL、RepoForge,如果你出现 yum install XXXXX 安装不成功的话,很有可能就是你没有相关源,请查看我对源设置的文章
    • Mysql 5.6 下载:wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.29.tar.gz (大小:31 M)
    • Mysql 5.7 下载:wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.11.tar.gz (大小:47 M)
    • 我们这次安装以 5.6 为实例
      • 进入下载目录:cd /opt/setups
      • 解压压缩包:tar zxvf mysql-5.6.29.tar.gz
      • 移到解压包:mv /opt/setups/mysql-5.6.29 /usr/program/
      • 安装依赖包、编译包:yum install -y make gcc-c++ cmake bison-devel ncurses-devel
      • 进入解压目录:cd /usr/program/mysql-5.6.29/
      • 生成安装目录:mkdir -p /usr/program/mysql/data
      • 生成配置(使用 InnoDB):sudo cmake -DCMAKE_INSTALL_PREFIX=/usr/program/mysql -DMYSQL_DATADIR=/usr/program/mysql/data -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=utf8 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1
      • 编译:sudo make,这个过程比较漫长,一般都在 30 分钟左右,具体还得看机子配置,如果最后结果有 error,建议删除整个 mysql 目录后重新解压一个出来继续处理
      • 安装:sudo make install
      • 配置开机启动:
        • sudo cp /usr/program/mysql-5.6.29/support-files/mysql.server /etc/init.d/mysql
        • sudo chmod 755 /etc/init.d/mysql
        • sudo chkconfig mysql on
      • 复制一份配置文件: sudo cp /usr/program/mysql-5.6.29/support-files/my-default.cnf /etc/my.cnf
      • 删除安装的目录:rm -rf /usr/program/mysql-5.6.29/
      • 添加组和用户及安装目录权限
        • sudo groupadd mysql #添加组
        • sudo useradd -g mysql mysql -s /bin/false #创建用户mysql并加入到mysql组,不允许mysql用户直接登录系统
        • sudo chown -R mysql:mysql /usr/program/mysql/data #设置MySQL数据库目录权限
      • 初始化数据库:sudo /usr/program/mysql/scripts/mysql_install_db --basedir=/usr/program/mysql --datadir=/usr/program/mysql/data --skip-name-resolve --user=mysql
      • 启动 Mysql 服务器:service mysql start
      • 查看是否已经启动了:ps aux | grep mysql
      • 常用命令软连接,才可以在终端直接使用:mysql 和 mysqladmin 命令
        • sudo ln -s /usr/program/mysql/bin/mysql /usr/bin
        • sudo ln -s /usr/program/mysql/bin/mysqladmin /usr/bin

修改 root 账号密码

  • 默认安装情况下,root 的密码是空,所以为了方便我们可以设置一个密码,假设我设置为:123456
  • 终端下执行:mysql -uroot
    • 现在进入了 mysql 命令行管理界面,输入:SET PASSWORD = PASSWORD('123456');
  • 修改密码后,终端下执行:mysql -uroot -p
    • 根据提示,输入密码进度 mysql 命令行状态。
  • 如果你在其他机子上连接该数据库机子报:Access denied for user 'root'@'localhost' (using password: YES)
    • 解决办法:
    • 在终端中执行:service mysql stop
    • 在终端中执行:/usr/program/mysql/bin/mysqld --skip-grant-tables
      • 此时 MySQL 服务会一直处于监听状态,你需要另起一个终端窗口来执行接下来的操作
      • 在终端中执行:mysql -u root mysql
      • 进入 MySQL 命令后执行:UPDATE user SET Password=PASSWORD('填写你要的新密码') where USER='root';FLUSH PRIVILEGES;
      • 重启 MySQL 服务:service mysql restart

Mysql 配置

  • 官网配置参数解释:http://dev.mysql.com/doc/refman/5.6/en/mysqld-option-tables.html
  • 找一下当前系统中有多少个 my.cnf 文件:find / -name "my.cnf",我查到的结果:
    /etc/my.cnf
    /usr/program/mysql/my.cnf
    /usr/program/mysql/mysql-test/suite/ndb/my.cnf
    /usr/program/mysql/mysql-test/suite/ndb_big/my.cnf
    .............
    /usr/program/mysql/mysql-test/suite/ndb_rpl/my.cnf
    
    • 保留 /etc/my.cnf/usr/program/mysql/mysql-test/ 目录下配置文件,其他删除掉。

MySQL 主从复制

环境说明和注意点

  • 假设有两台服务器,一台做主,一台做从
    • MySQL 主信息:
      • IP:12.168.1.113
      • 端口:3306
    • MySQL 从信息:
      • IP:12.168.1.115
      • 端口:3306
  • 注意点
    • 主 DB server 和从 DB server 数据库的版本一致
    • 主 DB server 和从 DB server 数据库数据一致
    • 主 DB server 开启二进制日志,主 DB server 和从 DB server 的 server-id 都必须唯一
  • 优先操作:
    • 把主库的数据库复制到从库并导入

主库机子操作

  • 主库操作步骤

    • 创建一个目录:mkdir -p /usr/program/mysql/data/mysql-bin
    • 主 DB 开启二进制日志功能:vim /etc/my.cnf
      • 添加一行:log-bin = /usr/program/mysql/data/mysql-bin
      • 指定同步的数据库,如果不指定则同步全部数据库,其中 ssm 是我的数据库名:binlog-do-db=ssm
    • 重启主库 MySQL 服务
    • 进入 MySQL 命令行状态,执行 SQL 语句查询状态:SHOW MASTER STATUS;
      • 在显示的结果中,我们需要记录下 FilePosition 值,等下从库配置有用。
    • 设置授权用户 slave01 使用 123456 密码登录主库,这里 @ 后的 IP 为从库机子的 IP 地址,如果从库的机子有多个,我们需要多个这个 SQL 语句。
    grant replication slave on *.* to 'slave01'@'192.168.1.135' identified by '123456';
    flush privileges;
    

从库机子操作

  • 从库操作步骤
  • 测试从库机子是否能连上主库机子:sudo mysql -h 192.168.1.105 -u slave01 -p,必须要连上下面的操作才有意义。
    • 由于不能排除是不是系统防火墙的问题,所以建议连不上临时关掉防火墙:service iptables stop
    • 或是添加防火墙规则:
      • 添加规则:sudo iptables -I INPUT -p tcp -m tcp --dport 3306 -j ACCEPT
      • 保存规则:sudo service iptables save
      • 重启 iptables:sudo service iptables restart
  • 修改配置文件:vim /etc/my.cnf,把 server-id 改为跟主库不一样
  • 在进入 MySQL 的命令行状态下,输入下面 SQL:
CHANGE MASTER TO
master_host='192.168.1.200',
master_user='slave01',
master_password='123456',
master_port=3306,
master_log_file='mysql3306-bin.000006',>>>这个值复制刚刚让你记录的值
master_log_pos=1120;>>>这个值复制刚刚让你记录的值
  • 执行该 SQL 语句,启动 slave 同步:START SLAVE;
  • 执行该 SQL 语句,查看从库机子同步状态:SHOW SLAVE STATUS;
  • 在查看结果中必须下面两个值都是 Yes 才表示配置成功:
    • Slave_IO_Running:Yes
      • 如果不是 Yes 也不是 No,而是 Connecting,那就表示从机连不上主库,需要你进一步排查连接问题。
    • Slave_SQL_Running:Yes
  • 如果你的 Slave_IO_Running 是 No, 那你可以检查从库下的错误日志:cat /usr/program/mysql/data/mysql-error.log
    • 如果里面提示 uuid 错误,你可以编辑从库的这个配置文件:vim /usr/program/mysql/data/auto.cnf,把配置文件中的:server-uuid 值随便改一下,保证和主库是不一样的。

资料

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容