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

[经验分享] mysql运维常用操作

[复制链接]
YunVN网友  发表于 2018-10-4 10:31:03 |阅读模式
  mysql源码安装{
  groupadd mysql
  useradd mysql -g mysql -M -s /bin/false
  tar zxvf mysql-5.0.22.tar.gz
  cd mysql-5.0.22
  ./configure  --prefix=/usr/local/mysql \
  --with-client-ldflags=-all-static \
  --with-mysqld-ldflags=-all-static \
  --with-mysqld-user=mysql \
  --with-extra-charsets=all \
  --with-unix-socket-path=/var/tmp/mysql.sock
  make  &&   make  install
  # 生成mysql用户数据库和表文件,在安装包中输入
  scripts/mysql_install_db  --user=mysql
  vi ~/.bashrc
  export PATH="$PATH: /usr/local/mysql/bin"
  # 配置文件,有large,medium,small三个,根据机器性能选择
  cp support-files/my-medium.cnf /etc/my.cnf
  cp support-files/mysql.server /etc/init.d/mysqld
  chmod 700 /etc/init.d/mysqld
  cd /usr/local
  chmod 750 mysql -R
  chgrp mysql mysql -R
  chown mysql mysql/var -R
  cp  /usr/local/mysql/libexec/mysqld mysqld.old
  ln -s /usr/local/mysql/bin/mysql /sbin/mysql
  ln -s /usr/local/mysql/bin/mysqladmin /sbin/mysqladmin
  ln -s -f /usr/local/mysql/bin/mysqld_safe /etc/rc.d/rc3.d/S15mysql5
  ln -s -f /usr/local/mysql/bin/mysqld_safe /etc/rc.d/rc0.d/K15mysql5
  }
  mysql更改密码{
  update user set password=password('passwd') where user='root';
  flush privileges;
  mysqladmin -u root password 'xuesong'
  mysql常用命令{
  ./mysql/bin/mysqld_safe --user=mysql &   # 启动mysql服务
  ./mysql/bin/mysqladmin -uroot -p -S ./mysql/data/mysql.sock shutdown    # 停止mysql服务
  mysqlcheck -uroot -p -S mysql.sock --optimize --databases account       # 检查、修复、优化MyISAM表
  mysqlbinlog slave-relay-bin.000001              # 查看二进制日志(报错加绝对路径)
  mysqladmin -h myhost -u root -p create dbname   # 创建数据库
  flush privileges;             # 刷新
  show databases;               # 显示所有数据库
  use dbname;                   # 打开数据库
  show tables;                  # 显示选中数据库中所有的表
  desc tables;                  # 查看表结构
  drop database name;           # 删除数据库
  drop table name;              # 删除表
  create database name;         # 创建数据库
  select 列名称 from 表名称;    # 查询
  show grants for repl;         # 查看用户权限
  show processlist;             # 查看mysql进程
  select user();                # 查看所有用户
  show slave status\G;          # 查看主从状态
  show variables;               # 查看所有参数变量
  show table status             # 查看表的引擎状态
  select host,user,password from user;            # 查询用户权限 先use mysql
  create table ka(ka_id varchar(6),qianshu int);  # 创建表
  SHOW VARIABLES LIKE 'character_set_%';          # 查看系统的字符集和排序方式的设定
  show variables like '%timeout%';                # 查看超时(wait_timeout)
  delete from user where user='';                 # 删除空用户
  delete from user where user='sss' and host='localhost' ;    # 删除用户
  ALTER TABLE mytable ENGINE = MyISAM ;                       # 改变现有的表使用的存储引擎
  SHOW TABLE STATUS from  库名  where Name='表名';            # 查询表引擎
  CREATE TABLE innodb (id int, title char(20)) ENGINE = INNODB                     # 创建表指定存储引擎的类型(MyISAM或INNODB)
  grant replication slave on *.* to '用户'@'%' identified by '密码';               # 创建主从复制用户
  ALTER TABLE player ADD INDEX weekcredit_faction_index (weekcredit, faction);     # 添加索引
  alter table name add column accountid(列名)  int(11) NOT NULL(字段不为空);       # 插入字段
  增加MySQL用户{
  格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码"
  例1、增加一个用户user_1密码为123,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MySQL,然后键入以下命令:
  mysql> grant select,insert,update,delete on *.* to user_1@"%" Identified by "123";
  mysql>flush privileges;
  例1增加的用户是十分危险的,如果知道了user_1的密码,那么他就可以在网上的任何一台电脑上登录你的MySQL数据库并对你的数据为所欲为了,解决办法见例2。
  例2、增加一个用户user_2密码为123,让此用户只可以在localhost上登录,并可以对数据库aaa进行查询、插入、修改、删除的操作(localhost指本地主机,即MySQL数据库所在的那台主机),
  这样用户即使用知道user_2的密码,他也无法从网上直接访问数据库,只能通过 MYSQL主机来操作aaa库。
  mysql>grant select,insert,update,delete on aaa.* to user_2@localhost identified by "123";
  用新增的用户如果登录不了MySQL,在登录时用如下命令:
  mysql -u user_1 -p -h 192.168.113.50 (-h后跟的是要登录主机的ip地址)
  }
  登录mysql的命令{
  # 格式: mysql -h 主机地址 -u 用户名 -p 用户密码
  mysql -h110.110.110.110 -P3306 -uroot -p
  mysql -uroot -p -S /data1/mysql5/data/mysql.sock -A  --default-character-set=GBK
  }
  shell执行mysql命令{
  mysql -u$username -p$passwd -h$dbhost -P$dbport -A -e "
  use $dbname;
  delete from data where date=('$date1');
  "    # 执行多条mysql命令
  mysql -uroot -p -S mysql.sock -e "use db;alter table gift add column accountid  int(11) NOT NULL;flush privileges;"    # 不登陆mysql插入字段
  }
  备份数据库{
  mysqldump -h host -u root -p --default-character-set=utf8 --hex-blob   dbname >dbname_backup.sql               # 不包括库名,还原需先创建库,在use
  mysqldump -h host -u root -p --database --default-character-set=utf8 --hex-blob   dbname >dbname_backup.sql    # 包括库名,还原不需要创建库
  /bin/mysqlhotcopy -u root -p    # mysqlhotcopy只能备份MyISAM引擎
  mysqldump -u root -p -S mysql.sock --default-character-set=utf8 --hex-blob db table1 table1  > /data/db.sql    # 备份表
  mysqldump -uroot -p123  -d database > database.sql    # 备份数据库结构
  innobackupex --user=root --password="" --defaults-file=/data/mysql5/data/my_3306.cnf --socket=/data/mysql5/data/mysql.sock --slave-info --stream=tar --tmpdir=/data/dbbackup/temp /data/dbbackup/ 2>/data/dbbackup/dbbackup.log | gzip 1>/data/dbbackup/db50.tar.gz
  # xtrabackup备份需单独安装软件 优点: 速度快,压力小,可直接恢复主从复制
  }
  还原数据库{
  mysql -h host -u root -p dbname < dbname_backup.sql
  source 路径.sql   # 登陆mysql后还原sql文件
  }
  赋权限{
  # 指定IP: $IP  本机: localhost   所有IP地址: %   # 通常指定多条
  grant all on zabbix.* to user@&quot;$IP&quot;;             # 对现有账号赋予权限
  grant select on database.* to user@&quot;%&quot; Identified by &quot;passwd&quot;;     # 赋予查询权限(没有用户,直接创建)
  grant all privileges on database.* to user@&quot;$IP&quot; identified by 'passwd';         # 赋予指定IP指定用户所有权限(不允许对当前库给其他用户赋权限)
  grant all privileges on database.* to user@&quot;localhost&quot; identified by 'passwd' with grant option;   # 赋予本机指定用户所有权限(允许对当前库给其他用户赋权限)
  grant select, insert, update, delete on database.* to user@'ip'identified by &quot;passwd&quot;;   # 开放管理操作指令
  revoke all on *.* from user@localhost;     # 回收权限
  }
  更改密码{
  update user set password=password('passwd') where user='root';
  flush privileges;
  mysqladmin -u root password 'xuesong'
  }
  mysql忘记密码后重置{
  cd /data/mysql5
  /data/mysql5/bin/mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
  update user set password=password('123123') where user='root';
  }
  mysql主从复制失败恢复{
  slave stop;
  reset slave;
  change master to master_host='10.11.241.126',master_port=3306,master_user='root',master_password='passwd',master_log_file='master-bin.00009,master_log_pos=98,master_connect_retry=60';
  slave start;
  }
  }


运维网声明 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-611761-1-1.html 上篇帖子: mysql++使用实例 下篇帖子: JRE+MYSQL+JETTY安装部署
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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