`
porterzhang
  • 浏览: 7241 次
社区版块
存档分类
最新评论

玩mysql必须知道的10个tip

阅读更多

一:启动和关闭mysql

linux下
比如我的mysql是用源码方式安装在/usr/local/mysql
自动:将/usr/local/mysql/share/mysql/mysql.server拷贝到/etc/rc.d/init.d/下,然后
chkconfig --add mysql.server就可以开机就启动mysql服务了。
手动:以root身份执行/usr/local/mysql/bin/mysqld_safe --user=mysql

windows下
自动:
用cmd方式,到mysql安装路径的bin文件夹下,执行:mysqld-nt --install

手动:直接到到mysql安装路径的bin文件夹下执行net start mysql即可。
如果不想让mysql在计算机启动时候就启动服务,执行:mysqld-nt --remove
也可以在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services中删除对应服务并重启计算机。
关闭mysql:mysqladmin -uroot -p shutdown
启动mysql:
mysqld-nt --install
net start mysql

 

还可以在my.cnf 或者my.ini 配置文件里的[mysqld]段写入skip-grant-tables ,一样可以起到无权限审核的效果。
二:添加用户并设置权限 
更新密码

UPDATE user SET Password=PASSWORD('new_password')
WHERE user='root';

新建用户并赋予权限

GRANT ALL PRIVILEGES ON *.* TO monty@localhost 
IDENTIFIED BY 'something' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO monty@"% "
IDENTIFIED BY 'something' WITH GRANT OPTION;
GRANT RELOAD,PROCESS ON *.* TO admin@localhost ;
GRANT USAGE ON *.* TO dummy@localhost ;


FLUSH PRIVILEGES;

 

三:添加删除库

CREATE DATABASE db_name

DROP DATABASE [IF EXISTS] db_name

 

同时可以通过下面代码加默认字符集和默认排序方法。

DEFAULT CHARACTER SET gbk COLLATE gbk _chinese_ci;

 

四:备份和还原

常规备份命令是mysqldump,这里以tm数据库为例,做简单介绍,详细资料参考
http://info.mysql.cn/install/2006/0410/5521.html 
备份:
#mysqldump -u root -p tm > tm_20060101.sql
按提示输入密码,这就把tm数据库所有的表结构和数据备份到tm_20060101.sql了,因为要总进行备份工作,如果数据量大会占用很大空间,
这是可以利用gzip压缩数据,命令如下:
#mysqldump -u root -p tm | gzip > tm_20060101.sql.gz
还可以备份到远程机器,用-h制定,如
#mysqldump -u root -p tm > tm_20060101.sql -h xxx.xxx.xxx.xxx
可以直接备份到IP地址为xxx.xxx.xxx.xxx的远程计算机。
系统崩溃,重建系统,或恢复数据库时,可以这样恢复数据:
#mysql -u root -p tm < tm_20060101.sql
从压缩文件直接恢复:
#gunzip < tm_20060101.sql.gz | mysql -u root -p tm

五:维护和修复表

myisamchk /path/to/datadir/*/*.MYI

myisamchk -r /path/to/datadir/*/*.MYI

 

六:丢失密码

前提必须先kill掉mysqld的进程。
然后用一下命令启动mysqld

linux: .mysqld_safe --skip-grant-tables &
windows: mysqld-nt --skip-grant-tables

然后不用密码直接进入mysql,用前面的方法添加或修改用户密码。

 

七:改变数据库的字符集设置

如果MySQL数据库已经安装好,可以使用下列SQL命令查看MySQL当前的字符集设置: 
mysql> SHOW VARIABLES LIKE 'character_set_%'; 
+--------------------------+----------------------------+ 
| Variable_name | Value | 
+--------------------------+----------------------------+ 
| character_set_client | latin1 | 
| character_set_connection | latin1 | 
| character_set_database | latin1 | 
| character_set_results | latin1 | 
| character_set_server | latin1 | 
| character_set_system | utf8 | 
| character_sets_dir | /usr/share/mysql/charsets/ | 
+--------------------------+----------------------------+ 
7 rows in set (0.00 sec)

mysql> SHOW VARIABLES LIKE 'collation_%'; 
+----------------------+-------------------+ 
| Variable_name | Value | 
+----------------------+-------------------+ 
| collation_connection | latin1_swedish_ci | 
| collation_database | latin1_swedish_ci | 
| collation_server | latin1_swedish_ci | 
+----------------------+-------------------+ 
3 rows in set (0.00 sec)

然后依次执行以下语句,然后重启mysql server:

set  character_set_client  = gbk; 
set  character_set_connection  gbk; 
set  character_set_database  gbk; 
set  character_set_results  gbk; 
set  character_set_server  gbk;

set  character_set_system = gbk; 
--此处utf-8也可以
--然后执行:
SET collation_server = gbk_chinese_ci ;
SET collation_database = gbk_chinese_ci ;
SET collation_connection = gbk_chinese_ci ;

CREATE DATABASE database-name CHARACTER SET utf8 COLLATE utf8_general_ci;

 

八:mysql 读写分离  
 
通过mysql-proxy实现读写分离

===数据库同步===
0.主服务器上配置打开
log-bin=mysql-bin
server-id      = 1
1.在主服务器建立复制用户,ip为从服务器的ip
grant replication slave on *.* to 'repl'@'127.0.0.1' identified by '1qazxsw2';
2.锁定主服务器, flush tables with read lock;
3.如果主服务器中有数据,就复制主服务数据覆盖从服务数据文件
4.获取偏移量 show master status;
5.打开从服务器配置文件
server-id       = 2
master-host     =   192.168.1.5
master-user     =   repl
master-password =   xxxx
master-port     =  3306
log-bin=mysql-bin

6.重启从服务器,/etc/init.d/mysql start --skip-slave-start
7.配置偏移量(文件名必须一致,特别是后面的数字)
change master to 
master_log_file='mysql-bin.000002',
master_log_pos=98;

change master to master_log_file='mysql-bin.000003',master_log_pos=98;
6.启动复制 start slave;

 

配置读写分离时需要的几个查看服务器状态的命令
show master status \G;
show slave status \G;
show processlist \G;

 

 

九:mysql proxy

 

下载mysql proxy脚本,修改并保存下面的启动文件,放入/etc/init.d目录里,用chkconfig放入系统运行中。

 

#!/bin/sh
# chkconfig: 345 74 30
# description: Mysql Proxy
#
#
export LUA_PATH=/opt/proxy/share/mysql-proxy/?.lua

cd /opt/proxy/sbin
mode=$1
if [ -z "$mode" ] ; then
  mode="start"
fi

case $mode in
  'start')
    ./mysql-proxy --daemon \
--proxy-address=:3307 \
--proxy-backend-addresses=192.168.1.5:3306 \
--proxy-read-only-backend-addresses=:3306 \
--proxy-lua-script=/opt/proxy/share/mysql-proxy/rw-splitting.lua
    ;;

  'stop')
    killall mysql-proxy
    ;;

  'restart')
    if $0 stop ; then
      $0 start
    else
      echo  "retart failed!!!"
      exit 1
    fi
    ;;
esac
exit 0

 

 

十,终于完成这篇文章,mysql调优脚本

tuning-primer 脚本是分析mysql运行参数和日志的工具,他可以通过分析结果,给你提示一些优化方向,使用它比你慢慢去分析参数和在线数据方便很多。但是也鉴于他分析的是在线数据,所以需要分析前你的Mysql服务器已经在运行一段时间才行,最好运行时多于两周。

 

具体使用:

下载tuning-primer

wget http://www.day32.com/MySQL/tuning-primer.sh

 

设置权限
chmod +x tuning-primer.sh

 

在用户的home目录建立.my.cnf文件,脚本需要从这里读取mysql服务器的登录信息(用户名密码)

 

[client]
user = USERNAME
password = PASSWORD
socket = /tmp/mysql.sock

 

最后运行
./tuning-primer.sh

 

这时脚本会输出一些信息,其中重要的信息会用彩色文字显示。如果你使用的是SecureCRT,你需要在终端选项中,把仿真终端改成ANSI颜色。

 

其他的就看你自己的了。

 

http://www.chedong.com/blog/archives/001451.html

 

断断续续终于完成了这篇文章,希望它能成为最实用的MYSQL技巧指导

分享到:
评论

相关推荐

    [php]mysql数据库操作——DB类

    【作 用】: mysql数据库操作类 【作 者】: Riyan 【版 本】: version 2.0 【修改日期】: 2010/02/11 ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※ ※※※※※※※※ **/ class ...

    很全面的Mysql数据库、数据库表、数据基础操作笔记(含代码)

    Mysql数据库、数据库表、数据基础操作笔记分享给大家,供大家参考,具体内容如下 一、数据库操作 ...在mysql的数据目录,形成一个目录,目录名是数据库名。 目录内,存在一个文件,用于保存数据库的选项信息。Db.

    MySQL两种删除用户语句的区别(delete user和drop user)

    Tip: 在MySQL中,我们经常需要创建用户和删除用户,创建用户时,我们一般使用create user或者grant语句来创建,create语法创建的用户没有任何权限,需要再使用grant语法来分配权限,而grant语法创建的用户直接拥有...

    erc20tipbot:用于ERC20令牌的Tip Bot

    提示机器人专为Discord开发的BTC和ERC20 Tip机器人,以MySQL作为数据库。 该代码基于的模块化ERC20 Tip Bot(但不安全)。 这个机器人并没有声称是模块化的,但是应该很容易地修改该机器人以使其适用于其他数据库或...

    MySQL中Multiple primary key defined报错的解决办法

    这里报错Multiple primary key defined,表示定义了多个主键,正确的写法是如下: 如果项设置复合主键,复合主键的特点是同时创建、同时删除,所以需要把主键删除,但是这里设置了自增,需要先把自增删除,才可以...

    基于dlib+mysql+opencv+tkinter的人脸识别签到系统源码+项目说明.zip

    本项目是一个基于 Python 的人脸识别考勤系统,主要使用了 `dlib`、`opencv`、`tkinter`、`PIL`、`pymysql` 等库,并使用了 KNN 算法进行人脸识别。 环境安装 在运行本项目之前,请确保已经安装了以下环境和库: ...

    stip-common:无缝威胁情报平台

    S-TIP是一个威胁情报平台,可以降低CTI共享各个实践之间的障碍。 要求 Python 3.6+ MySQL 5.7以上 MongoDB 4.0以上 Web服务器(例如apache) 入门 安装 有一些安装脚本可以轻松安装S-TIP实例。 请参阅。 Docker...

    学生成绩管理系统

    ## 一个使用Java swing和MySQL的学生成绩管理系统,电子商务面向对象程序设计综合实习 ## &gt; 使用该项目的麻烦点下右上角的 ***star*** ,感激不尽。 **TIP:** **作业实现如下:** -- 1.本系统可以实现一个学生...

    方维订餐小秘书商业系统V2.4多城市版

    程序介绍:方维在线订餐系统是一个通过向餐厅提供互联网信息管理和为食客提供查询及预订服务的网络平台,主要功能包括商家菜品信息、网上订餐、优惠券、团购、活动、积分兑换等,使用该程序你也可以搭建一个类似...

    2018年红包源码,曾经花7000买的,懂的拿去吧

    如果这个房间最大翻倍的倍数是13倍,那么玩家金额必须达到13*5(单倍金额)* 3(开始包数) = 195 金币 才能参与抢庄。 当其中一个玩家抢到庄主后,按房间左下角的圆形加号发出游戏包,根据房间的玩家的数量,决定发...

    Eclipse开发分布式商城系统+完整视频代码及文档

    │ 10.项目调试方法.avi │ 11.nginx的安装及启动、停止.avi │ 12.nginx的配置文件-通过端口号区分虚拟机.avi │ 13.通过域名配置虚拟机.avi │ 淘淘商城第二天笔记.docx │ ├─03.第三天 │ 01.课程回顾.avi │ ...

    theTipTop-microservices:服务器端微服务

    您需要运行Web服务器和mysql服务器(并检查端口是否与application-local.properties匹配) 在产品上运行 在生产环境中使用docker运行微服务的方法是: docker-compose --env-file ./environements/.env.prod up -d ...

    Devart LinqConnect 3.1

    LinqConnect is a fast and easy-to-use ORM solution, developed closely to the Microsoft LINQ to SQL technology, and supporting SQL Server, Oracle, MySQL, PostgreSQL, and SQLite. It provides a powerful ...

    SummerBlog:个人博客

    Zabbix,Elasticsearch,Redis,Mysql,Spark,springcloud等组件的安装部署与运维了解centos,windows,ubuntu等服务器相关操作方式 :envelope:联系微信或QQ :1340904087 电邮: GitHub的: : ::: tip文章内容仅...

    mybatis-case:mybatis 学习记录

    tip:要使用代码的话,请自己附加下面的jar包 asm-3.3.1.jar cglib-2.2.2.jar commons-logging-1.1.1.jar javassist-3.17.1-GA.jar log4j-1.2.17.jar log4j-api-2.0-rc1.jar log4j-core-2.0-rc1.jar mybatis-3.2.7....

    UE(官方下载)

    This power tip provides an explanation as well as some tips to get the most out of temp files. Backup and Restore Settings One of the staples of UltraEdit (and UEStudio) is its highly configurable ...

    asp.net知识库

    .NET关于string转换的一个小Bug Regular Expressions 完整的在.net后台执行javascript脚本集合 ASP.NET 中的正则表达式 常用的匹配正则表达式和实例 经典正则表达式 delegate vs. event 我是谁?[C#] 表达式计算引擎...

    UWA 2.X 通用建站系统 v2.1.0

    [完善]会员上传提示 $_UPLOAD_TIP [更改]完善上传,只有缩略图时不插入原始图片 [增强]会员控制器分组 [更改]完善安装空间大小检查,云空间不能检查空间大小 [增强]修复表单提交时 uploadify 是否正在上传附件判断 ...

Global site tag (gtag.js) - Google Analytics