mysql 远程连接问题

以下是本人遇到的问题,解决方案如下,仅当参考,每个人的情况可能不一样;以下错误是建立在本地可以连接本地数据库,

1.远程连接不能连接如果错误是
Can’t connect to MySQL server on ‘192.168.82.85’ (61)
修改配置文件  my.cnf      bind-address = 0.0.0.0
2.mac  如果找不到my.cnf   拷贝其他地方的配置文件,到/etc 目录。在配置其配置项

3.如果远程访问不能访问,报Access denied for user ‘root’@’192.168.82.85’ (using password: YES)
修改mysql  >  user  表,所对应的用火的host字段  %:代表任何ip可以访问, 也可以改成指定ip就可以访问

MySQL字符集和校验规则概念

字符集,character set,就是一套表示字符的符号和这些的符号的底层编码;而校验规则,则是在字符集内用于比较字符的一套规则。下面我简单举个例子来说明一下:如在某个字符集“X”的A与a,他们的底层编码分别是A=0,a=100。这里符号“A”“a”和底层编码“0”“100”就是字符集的概念范围。假设我们要比较A与a的大小,我们得到a>A,因为我们是根据其底层编码进行比较的,这就是这个字符集“X”的一种校验规则“Z”(根据底层编码来比较)。假设,现在有另外一种校验规则,是先取其相反数,然后再比较大小,那么就很显然的得到a<A,这就是字符集“X”的另外一种校验规则“Z1”。由此可见,一种字符集可能存在多个与之对应的校验规则(一对多关系)。

    关于字符集与校验规则,mysql支持:
1、使用字符集来存储字符串,支持多种字符集;
2、使用校验规则来比较字符串,同种字符集还能使用多种校验规则来比较;
3、在同一台服务器、同一个数据库或者甚至在同一个表中使用不同字符集或校对规则来混合组合字符串;
4、可以在任何级别(服务器、数据库、表、字段、字符串),定义不同的字符集和校验规则。

    查询你的mysql数据库所支持的字符集种类,可以如下:
mysql> show character set;
+———-+—————————–+———————+——–+
| Charset  | Description                 | Default collation   | Maxlen |
+———-+—————————–+———————+——–+
| big5     | Big5 Traditional Chinese    | big5_chinese_ci         2 |
| dec8     | DEC West European           | dec8_swedish_ci         1 |
| ………| ………………….      | …………….        . |
| eucjpms  | UJIS for Windows Japanese   | eucjpms_japanese_ci |      3 |
+———-+—————————–+———————+——–+
36 rows in set (0.00 sec)
  这里的maxlen表示要用最大多少个字节来存储字符集的单个词,default collation表示该字符集的默认校验规则。
  你也可以利用like来进行筛选,如下:
mysql> show character set like ‘latin%’;
+———+—————————–+——————-+——–+
| Charset | Description                 | Default collation | Maxlen |
+———+—————————–+——————-+——–+
| latin1  | cp1252 West European        | latin1_swedish_ci |      1 |
| latin2  | ISO 8859-2 Central European | latin2_general_ci |      1 |
| latin5  | ISO 8859-9 Turkish          | latin5_turkish_ci |      1 |
| latin7  | ISO 8859-13 Baltic          | latin7_general_ci |      1 |
+———+—————————–+——————-+——–+
4 rows in set (0.00 sec)
   查询你的mysql数据库所支持字符集的校验规则,可以如下:
mysql> show collation;
+———————-+———-+—–+———+———-+———+
| Collation            | Charset  | Id  | Default | Compiled | Sortlen |
+———————-+———-+—–+———+———-+———+
| big5_chinese_ci      | big5      1 | Yes     | Yes           1 |
| big5_bin             | big5     84 |         | Yes           1 |
| dec8_swedish_ci      | dec8      3 | Yes                  0 |
| ……..             | ….     .. | …     | …           . |
| eucjpms_bin          | eucjpms  98 |         | Yes           1 |
+———————-+———-+—–+———+———-+———+
127 rows in set (0.00 sec)
  这里compiled表示该collation所对应的character set是否被编译到此mysql数据库,通过此点就可以知道该mysql数据库是否支持某个字符集。sortlen表示要在内存中排序时,该字符集的字符要占用多少个字节。
  你也可以利用like来进行筛选,如下:
mysql> show collation like ‘latin1%’;
+——————-+———+—-+———+———-+———+
| Collation         | Charset | Id | Default | Compiled | Sortlen |
+——————-+———+—-+———+———-+———+
| latin1_german1_ci | latin1  5 |         | Yes           1 |
| latin1_swedish_ci | latin1  8 | Yes     | Yes           1 |
| latin1_danish_ci  | latin1  | 15 |         | Yes           1 |
| latin1_german2_ci | latin1  | 31 |         | Yes           2 |
| latin1_bin        | latin1  | 47 |         | Yes           1 |
| latin1_general_ci | latin1  | 48 |         | Yes           1 |
| latin1_general_cs | latin1  | 49 |         | Yes           1 |
| latin1_spanish_ci | latin1  | 94 |         | Yes           1 |
+——————-+———+—-+———+———-+———+
8 rows in set (0.00 sec)

    大家可能已经发现collation的名字似乎有规律可循,其实的确也是这样的,并且它也有些特征,如下:
1、两个不同的字符集不能有相同的校验规则(字符集:校验规则 = 1:n);
2、每个字符集都有一个校验规则,就是对应的DEFAULT=YES的那个collation;
3、collation命名规则:字符集名_对应的语言名_ci/cs/bin,其中ci表示大小写不敏感性,cs表示大小写敏感性,bin表示二进

linux下使用crontab定时备份MYSQL数据库的方

 linux下使用crontab定时备份MYSQL数据库的方法:

只需按照下面3步做,一切都在你的掌控之下:

第一步:在服务器上配置备份目录代码:

——————————————————————————–

mkdir /var/lib/mysqlbackup

cd /var/lib/mysqlbackup

——————————————————————————–

第二步:编写备份脚本代码:

——————————————————————————–

vi dbbackup.sh

——————————————————————————–

粘帖以下代码,务必更改其中的username,password和dbname。

代码:

——————————————————————————–

#!/bin/sh

mysqldump -uuser -ppassword dbname | gzip > /var/lib/mysqlbackup/dbname`date +%Y-%m-%d_%H%M%S`.sql.gz

cd  /var/lib/mysqlbackup

rm -rf `find . -name ‘*.sql.gz’ -mtime 10`  #删除10天前的备份文件

——————————————————————————–

第三步:更改备份脚本权限

代码:

——————————————————————————–

chmod +x dbbackup.sh

——————————————————————————–

第四步:用crontab定时执行备份脚本代码:

——————————————————————————–

crontab -e

——————————————————————————–

若每天晚上21点00备份,添加如下代码,

代码:

——————————————————————————–

00 21 * * * /var/lib/mysqlbackup/dbbackup.sh

注:

1、任务调度设置文件的写法
可用crontab -e命令来编辑,编辑的是/var/spool/cron下对应用户的cron文件,也可以直接修改/etc/crontab文件
具体格式如下:
Minute Hour Day Month Dayofweek   command
分钟     小时   天     月       天每星期       命令
每个字段代表的含义如下:
Minute             每个小时的第几分钟执行该任务
Hour               每天的第几个小时执行该任务
Day                 每月的第几天执行该任务
Month             每年的第几个月执行该任务
DayOfWeek     每周的第几天执行该任务
Command       指定要执行的程序
在这些字段里,除了“Command”是每次都必须指定的字段以外,其它字段皆为可选

字段,可视需要决定。对于不指定的字段,要用“*”来填补其位置。
举例如下:
5       *       *           *     *     ls             指定每小时的第5分钟执行一次ls命令
30     5       *           *     *     ls             指定每天的 5:30 执行ls命令
30     7       8         *     *     ls             指定每月8号的7:30分执行ls命令
30     5       8         6     *     ls             指定每年的6月8日5:30执行ls命令
30     6       *           *     0     ls             指定每星期日的6:30执行ls命令[注:0表示星期天,1表示星期1,

以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。]

30     3     10,20     *     *     ls     每月10号及20号的3:30执行ls命令[注:“,”用来连接多个不连续的时段]

25     8-11 *           *     *     ls       每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段]

*/15   *       *           *     *     ls         每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 60分钟执行ls命令 ]

30   6     */10         *     *     ls       每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls 命令。 ]

每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件

50   7       *             *     *     root     run-parts     /etc/cron.daily   [ 注:run-parts参数表示,执行后面目录中的所有可执行文件。 ]

2、新增调度任务可用两种方法:
1)、在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。
2)、直接编辑/etc/crontab 文件,即vi /etc/crontab,添加相应的任务。

原文地址:http://my.oschina.net/u/919074/blog/223920