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

玩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技巧指导

分享到:
评论

相关推荐

    MySQL数据库开发答案.docx

    3. **设置提示符**:`tip`, `prompt`, 或 `popup message`在MySQL中不是用于设置提示符的命令。正确的命令是`mysql&gt; SET MYSQL_PS [=] 'prompt_string'`。 4. **导入SQL脚本**:使用`source script_file.sql`命令...

    TIPTOP开发语言_Genero_Business_Development_Language

    Genero Business Development Language(GBDL),也常被称为TIPTOP开发语言,是一种强大的、面向对象的编程语言,专为业务应用程序开发设计。该语言由Four Js公司开发,旨在提高生产力,简化多平台应用的创建,支持...

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

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

    mysql存储过程基础之遍历多表记录后插入第三方表中详解

    MySQL存储过程是一种预编译的SQL语句集合,用于执行复杂的数据库操作,如遍历多表记录并插入到第三方表中。在本教程中,我们将探讨如何创建和使用存储过程来实现这一目标。 首先,存储过程的主要优点在于它可以提高...

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

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

    linux系统搭建bugzilla工具详细指南

    在Linux系统中搭建Bugzilla项目缺陷管理工具是一个涉及多个组件的过程,包括Linux操作系统、数据库管理系统MySQL、Web服务器Apache以及Bugzilla本身。以下是详细的步骤和注意事项: 1. **平台准备** - 操作系统:...

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

    对于复合主键(Composite Primary Key),它是由两个或更多个列共同构成的主键,意味着这些列的组合必须在整个表中是唯一的。在创建复合主键时,不能使用第二种创建主键的方式,因为这种方式只适用于单个字段。正确...

    基于dlib库+mysql+opencv的人脸识别签到系统python源码+说明文档(新项目可作毕业设计).zip

    基于dlib库+mysql+opencv的人脸识别签到系统python源码+说明文档(新项目可作毕业设计).zip该项目属于个人毕业设计,经导师的精心指导与严格评审获得高分通过的设计项目。主要针对计算机相关专业的教师、正在做毕设...

    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(但不安全)。 这个机器人并没有声称是模块化的,但是应该很容易地修改该机器人以使其适用于其他数据库或...

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

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

    Fast Report中文帮助文档(搜集网上的汇集中文文档)

    《Fast Report中文帮助文档》包含了两种格式的资源:一个是`.chm`格式的"FastReport中文开发指南",另一个是`.pdf`格式的"FastReport 3.0设计手册PDF_SC"。这些文档旨在为使用Fast Report的开发者提供详尽的指导和...

    bugzilla4.2.2在win7和XP上的安装

    - **简介**:MySQL 是一个关系型数据库管理系统,用于存储 Bugzilla 的数据。它提供了高效的数据管理方式,支持 SQL 语言,是 Bugzilla 所必需的后端存储。 - **下载地址**:官方下载地址为 ...

    一个简单的php站点demo

    6. **post_tip.php**:这个名字暗示它可能是用户发布帖子时的提示或指导页面,可能包含发帖规则或提示信息。 7. **NewFile.html、test1.html**:这两个HTML文件可能是尚未完成或未被整合进网站结构的测试页面,或者...

    基于java+ssm亚盛汽车配件销售业绩管理统+jsp.zip

    7. **Tip tooltipster.js**:这是一个JavaScript插件,用于实现提示框效果,可能用于在页面上显示鼠标悬停时的提示信息。 8. **GMap**:gmap.html文件表明系统可能集成了Google Maps API,用于展示供应商或客户的...

    学生成绩管理系统

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

    基于Hadoop网站流量日志数据分析系统.zip

    4. **9、hive导出mysql数据库**:Hive是一个基于Hadoop的数据仓库工具,可以将存储在Hadoop分布式文件系统(HDFS)中的数据导出到MySQL等传统数据库,以便进一步的分析或业务操作。 5. **2、离线项目的hadoop环境...

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

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

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

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

Global site tag (gtag.js) - Google Analytics