设为首页 收藏本站
查看: 608|回复: 0

[经验分享] mysql安装和备份脚本的书写

[复制链接]

尚未签到

发表于 2018-10-4 06:09:51 | 显示全部楼层 |阅读模式
  mysql安装很大一部分参考了田逸写的《互联网运营智慧》,感谢田老师写这么好的书。田逸老师的博客:http://sery.blog.51cto.com/
环境:centos5.5 i386 +mysql 5.1.55  tar -zxvf mysql-5.1.55.tar.gz
  cd mysql-5.1.55
  groupadd mysql
  useradd mysql -g mysql
  mysql安装在/usr/local/mysql目录下 数据放在/data/mysql_db 下 增加utf8,gbk支持 以线程模式运行 如果想以后用innodb 引擎 编译参数增加 --with-plugins=innobase
  ./configure --prefix=/usr/local/mysql --localstatedir=/data/mysql_db --with-extra-charsets=utf8,gb2312,gbk --with-pthread --enable-thread-safe-client
  或者选择下面的编译方式,对mysql编译进行了优化,参考了简朝阳的编译方法
  ./configure --prefix=/usr/local/mysql --without-debug --enable-thread-safe-client --enable-assembler --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static --localstatedir=/data/mysql_db --with-extra-charsets=utf8,gb2312,gbk --with-pthread
  make
  make install
  cd  /usr/local/mysql
  chown -R mysql .
  chgrp -R mysql .
  初始化数据库
  bin/mysql_install_db --user=mysql
  chown -R root .
  cp support-files/my-large.cnf /etc/my.cnf(到mysql编译目录执行)
  echo /usr/local/mysql/lib/mysql/lib  >>/etc/ld.so.conf
  ldconfig
  /usr/local/mysql/bin/mysqld_safe --user=mysql &(启动mysql)
  ps -ef|grep mysql
  更改mysql root密码为mysql
  /usr/local/mysql/bin/mysqladmin  -uroot password mysql
  /usr/local/mysql/bin/mysql -uroot -p
  添加mysql开机自启动
  echo "/usr/local/mysql/bin/mysqld_safe --user=mysql &" >>/etc/rc.d/rc.local
  停止方法:/usr/local/mysql/bin/mysqladmin -u root -p shutdown
  mysql默认安装后不允许远程访问,更改如下
  /usr/local/mysql/bin/mysql -uroot -p
  use mysql;
  select user,host from user;
  delete from user where user="";
  select user,host from user;
  delete from user where user="root" and host="127.0.0.1";
  select user,host from user;
  update user set host="%" where user="root";
  更改mysql root密码为mysql
  update user set password=password("mysql") where user="root";
  select user,host from user; 直到只有root, host为"%"一条记录为止。否则继续delete from user where……
  flush privileges;
  修改mysql某些默认选项:
  [root@server mysql-5.1.55]# more /etc/my.cnf |sed -n '/^#/!p'
  [client]
  port            = 3306
  socket          = /tmp/mysql.sock
  default-character-set=utf8 (需要增加)
  [mysqld]
  port            = 3306
  socket          = /tmp/mysql.sock
  skip-locking
  key_buffer_size = 256M
  max_allowed_packet = 1M
  table_open_cache = 256
  sort_buffer_size = 1M
  read_buffer_size = 1M
  read_rnd_buffer_size = 4M
  myisam_sort_buffer_size = 64M
  thread_cache_size = 8
  query_cache_size= 16M
  default-character-set=utf8 (需要增加)
  init_connect='SET NAMES utf8'  (需要增加)
  max_connections=1000          (需要增加)
  ft_min_word_len=1               (需要增加)
  thread_concurrency = 8
  log-bin=mysql-bin
  expire_logs_days= 7          (需要增加)
  binlog_format=mixed
  server-id       = 1
  [mysqldump]
  quick
  max_allowed_packet = 16M
  [mysql]
  no-auto-rehash
  [myisamchk]
  key_buffer_size = 128M
  sort_buffer_size = 128M
  read_buffer = 2M
  write_buffer = 2M
  [mysqlhotcopy]
  interactive-timeout
  变更更改并查看
  /usr/local/mysql/bin/mysqladmin  -uroot -p shutdown
  /usr/local/mysql/bin/mysqld_safe --user=mysql &
  /usr/local/mysql/bin/mysql -uroot -p
  show variables like "character_set_%";
  mysql> show variables like "character_set_%";
  +--------------------------+----------------------------------------+
  | Variable_name            | Value                                  |
  +--------------------------+----------------------------------------+
  | character_set_client     | utf8                                   |
  | character_set_connection | utf8                                   |
  | character_set_database   | utf8                                   |
  | character_set_filesystem | binary                                 |
  | character_set_results    | utf8                                   |
  | character_set_server     | utf8                                   |
  | character_set_system     | utf8                                   |
  | character_sets_dir       | /usr/local/mysql/share/mysql/charsets/ |
  +--------------------------+----------------------------------------+
  8 rows in set (0.00 sec)
  2 完全备份脚本编写:
  每天对每个数据库都进行完全备份,备份成单个文件。备份到/data/mysqlback/执行脚本的日期/下,名称为:数据库名称.sql
  #!/bin/bash
  #mysql_back.sh:backup mysql databases
  riqi=$(date +'%Y%m%d')
  mysql=/usr/local/mysql/bin/mysql
  mysqldump=/usr/local/mysql/bin/mysqldump
  backdir=/data/mysqlback
  mkdir -p /data/mysqlback/$riqi
  #show all database
  all_db="$($mysql  -uroot -pmysql -Bse 'show databases'|grep -v information_schema)"
  for db in $all_db
  do
  $mysqldump --opt -uroot -pmysql $db --default-character-set=utf8 >$backdir/$riqi/$db.sql
  done
  echo "backup finished"
  增加计划任务,每天凌晨三点对数据库进行完全备份。
  crontab -e
  0 3 * * *  sh /data/myscripts/mysql_back.sh
  结尾附上阿里巴巴dba简朝阳编译方法:
  ./configure --prefix=/usr/local/mysql \
  --without-debug \
  --without-bench \
  --enable-thread-safe-client \
  --enable-assembler \
  --enable-profiling \
  --with-mysqld-ldflags=-all-static \
  --with-client-ldflags=-all-static \
  --with- \
  --with-extra-charset=utf8,gbk \
  --with-innodb \
  --with-csv-storage-engine \
  --with-federated-storage-engine \
  --with-mysqld-user=mysql \
  --without-embedded-server \
  --with-server-suffix=-community \
  --with-unix-socket-path=/usr/local/mysql/sock/mysql.sock
  附上mysql授权命令:

  grant all privileges on *.* to mysqlbackup@'192.168.1.2'>  flush privileges;


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-611538-1-1.html 上篇帖子: mysql系列之复制1----原理篇 下篇帖子: Mysql5.1.36 autoinstall.sh
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表