灌溉梦想,记录脚步
标签类目:mysql

MySQL任意主机用户无法登录

在创建MySQL用户时,选择登录主机为“%”,意思为所有主机均可以连接。

命令如下:
grant all privileges on *.* to ‘kevin’@’%’ identified by ‘password’ with grant option;

创建完成后,登录发现提示如下错误:
ERROR 1045 (28000): Access denied for user ‘kevin’@’localhost’ (using password: YES)

从逻辑上说,%代表所有主机,为什么使用“localhost”就是不行呢?或者也有一种可能性,“%”不包括“localhost”主机,而创建连接时使用到了“localhost”。

新增用户@localhost:
grant all privileges on *.* to ‘kevin’@’localhost’ identified by ‘password’ with grant option;

刷新权限,登录成功。
flush privileges;

MySQL在ARM平台上的编译错误一例

由于ARM平台开发板CPU本身处理能力有限,这样在MySQL编译的时候过程非常漫长,更可恶的还出现了错误,如下:

1
2
3
4
5
6
7
8
9
10
[ 68%] Building C object libmysql/CMakeFiles/clientlib.dir/__/sql-common/client_plugin.c.o
/root/lnmp1.0-full/mysql-5.5.28/sql-common/client_plugin.c: In function ‘mysql_client_plugin_init’:
/root/lnmp1.0-full/mysql-5.5.28/sql-common/client_plugin.c:252:5: error: incompatible type for argument 5 of ‘add_plugin’
/root/lnmp1.0-full/mysql-5.5.28/sql-common/client_plugin.c:120:1: note: expected ‘va_list’ but argument is of type ‘int’
/root/lnmp1.0-full/mysql-5.5.28/sql-common/client_plugin.c: In function ‘mysql_client_register_plugin’:
/root/lnmp1.0-full/mysql-5.5.28/sql-common/client_plugin.c:310:5: error: incompatible type for argument 5 of ‘add_plugin’
/root/lnmp1.0-full/mysql-5.5.28/sql-common/client_plugin.c:120:1: note: expected ‘va_list’ but argument is of type ‘int’
make[2]: *** [libmysql/CMakeFiles/clientlib.dir/__/sql-common/client_plugin.c.o] Error 1
make[1]: *** [libmysql/CMakeFiles/clientlib.dir/all] Error 2
make: *** [all] Error 2

处理方法如下应用下面Patch,文件名arm_fix_client_plugin.patch,内容:
继续阅读 »

Python 自动备份Mysql脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/env python
import os
import time
 
# 连接参数
username = root
password = 123456
hostname = localhost
 
# 获取时间
filestamp = time.strftime('%Y-%m-%d')
 
# 获取数据列表并备份
database_list_command="mysql -u %s -p%s -h %s --silent -N -e 'show databases'" % (username, password, hostname)
for database in os.popen(database_list_command).readlines():
    database = database.strip()
    if database == 'information_schema':
        continue
    filename = "/backups/mysql/%s-%s.sql" % (database, filestamp)
    os.popen("mysqldump -u %s -p%s -h %s -e --opt -c %s | gzip -c > %s.gz" % (username, password, hostname, database, filename))

MySQL 安全相关

MySQL 是一个真正的多用户、多线程SQL数据库服务器,它是一个客户机/服务器结构的实现。MySQL是现在流行的关系数据库中其中的一种,相比其它的数据库管理系统(DBMS)来说,MySQL具有小巧、功能齐全、查询迅捷等优点。MySQL 主要目标是快速、健壮和易用。目前,在大中型企业中已经得到了较好的运用,但是由于它是多平台的数据库,不可避免的默认配置也是适合多种情况的需求,因此需要用户需要在自定义的环境下对MySQL的使用进行加固。

假如软件本身有严重安全问题,即使安全配置做的更好,也没有用。因此,要首先了解MySQL的版本。关于MySQL的版本,在MySQL官方文档中是这么描述的:
MySQL 5.2是最新开发的发布系列,是将执行新功能的系列。不久的将来可以使用Alpha发行,以便感兴趣的用户进行广泛的测试。
MySQL 5.1是当前稳定(产品质量)发布系列。只针对漏洞修复重新发布;没有增加会影响稳定性的新功能。
MySQL 5.0是前一稳定(产品质量)发布系列。只针对严重漏洞修复和安全修复重新发布;没有增加会影响该系列的重要功能。
MySQL 4.0和3.23是旧的稳定(产品质量)发布系列。该版本不再使用,新的发布只用来修复特别严重的漏洞(以前的安全问题)。
继续阅读 »

2011-03-25技术合集

安装 MySQL 5.5.8已关闭评论

安装 MySQL 5.5.8

1、系统和软件环境

系统:CentOS 5.5

安装必要软件:

1
yum -y install gcc make bison

下载软件包:
mysql-5.5.8.tar.gz
cmake-2.8.3.tar.gz

安装cmake:

1
2
3
tar xzvf cmake-2.8.3.tar.gz 
./configure --prefix=/usr 
make&&make install

继续阅读 »

Oracle,MySQL数据库自动备份实例

1,关于Oracle,由于我需要备份的Oracle数据库较小,所以采用exp方式,脚本如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#环境变量
export ORACLE_BASE=/home/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db
export ORA_CRS_HOME=$ORACLE_BASE/product/10.2.0/crs
export PATH=$PATH:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin
export ORACLE_SID=test1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib32
export LD_LIBRARY_PATH_64=$ORACLE_HOME/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib 
#进行备份
exp test/test@test1 file=/data/bakup/test_15day.dmp direct=y
#由于exp未主动覆盖备份文件,这里就采用mv重命名
mv -f test_15day.dmp test.dmp
#将备份进行压缩存档
gzip -c /data/bakup/test.dmp > /data/bakup/test_`date +%y%m%d%H%M`.gz

继续阅读 »

使用Oracle Sql Developer连接mysql、sqlserver

1,下载mysql和sqlserver驱动包
#mysql 下载时候选择台湾大学的镜像,比较快
http://dev.mysql.com/downloads/connector/j/
#sqlserver 用开源的,比官方的稳定
http://sourceforge.net/projects/jtds/files/

2,配置
解压包中的jar文件到特定目录,自己选择一般放在sqldeveloper下的jdbc中。
打开打开sql developer,依次点击菜单:工具-首选项-数据库-第三方JDBC驱动程序,点击添加条目按钮。
将两个数据库的jar包添加过来。

3,连接
点击新建连接,就可以看到mysql,sqlserver和sybase选项卡,相应连接即可。
这里我测试到mysql一次只能打开一个表的选项卡。