d3 tip mysql_玩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 ,一样可以起到无权限审核的效果。

porterzhang-2151755

二:添加用户并设置权限

更新密码

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

设置权限

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值