new feature ——>mysql to oracle Migration
MYSQL = (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SID=MYSQL)) (HS=OK))CREATE DATABASE LINK mysqlCONNECT TO "my_user" IDENTIFIED BY "my_password"USING 'mysql';[@more@]Oracle MigrationGood guide to identifying differences Schema Data Objects ApplicationMySQL Migration Toolkit- Does- Tables/Views- Data- Does Not (yet)- Sequences- Stored Procedures- TriggersOracle Migration - SchemaCase Sensitive Table Names=
设置MYSQL不区分表大小写
ENV:MYSQL 5.0+CENTOS[@more@]通过修改/etc/my.cnf,在[mysqld]后面加上:lower_case_table_names = 1{默认是0的}重启mysql则可,新建表时,无论表名有无大小写,在数据库里统一转换为小写存储,但是之前的表还会保持原来的形式。PS:虽然mysql提供了这种方式,但是还是要规范我们的程序,避免这种问题发生。
改变mysql数据存放路径
环境介绍:REDHAT 5.4 64BITMYSQL 5.5[@more@]1、停掉MYSQL服务service mysql stop2、复制当前数据文件到目标目录:[root@qqdb mysql]# mv /var/lib/mysql /usr/local/src/3、修改相应文件:[root@qqdb ~]# vi /etc/rc.d/init.d/mysql <找到粗体部分修改成最新的mysqld_pid_file_path=if test -z "$basedir"then basedir=/usr bindir=/usr/bin if test -z "$datadir" then datadir=/usr/local/src/mysql fi sbindir=/usr/sbin libexecdir=/usr/sbinelse bindir="$basedir/bin" if test -z &
MYSQL使用记录之:handler
HANDLER tbl_name OPEN [ AS alias ] HANDLER tbl_name READ index_name { = | >= | <= | < } (value1,value2,...) [ WHERE where_condition ] [LIMIT ... ] HANDLER tbl_name READ index_name { FIRST | NEXT | PREV | LAST } [ WHERE where_condition ] [LIMIT ... ] HANDLER tbl_name READ { FIRST | NEXT } [ WHERE where_condition ] [LIMIT ... ] HANDLER tbl_name CLOSE HANDLER语句提供通往表存储引擎接口的直接通道。HANDLER可以用于MyISAM和InnoDB表。[@more@]HANDLER...OPEN语句用于打开一个表,
MYSQL使用记录之:infile/outfile
由于现有的东家要求使用MYSQL数据库,所以最近也开始了对MYSQL数据库的进一步的研究,首先介入的当然是一些正常的应用了:outfile/infile的灵活:[@more@]今天接触了下mysql下的outfile和infile感觉和实际使用很贴切,不像ORACLE那么商业化,任何操作都要封装成自己的接口来实现、操作,MYSQL直接通过一个简单的语句就完成了数据的导入、导出,满足了日常的灵活性与可控性。LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name.txt' [REPLACE | IGNORE] INTO TABLE tbl_name [FIELDS [TERMINATED BY 'strin
MySQL 备份和恢复 一
本文讨论 MySQL 的备份和恢复机制,以及如何维护数据表,包括最主要的两种表类型:MyISAM 和 Innodb,文中设计的 MySQL 版本为 5.0.22。目前 MySQL 支持的免费备份工具有:mysqldump、mysqlhotcopy,还可以用 SQL 语法进行备份:BACKUP TABLE 或者 SELECT INTO OUTFILE,又或者备份二进制日志(binlog),还可以是直接拷贝数据文件和相关的配置文件。MyISAM 表是保存成文件的形式,因此相对比较容易备份,上面提到的几种方法都可以使用。Innodb 所有的表都保存在同一个数据文件 ibdata1 中(也可能是多个文件,或者是独立的表空间文件),
Mysql 备份与恢复 二
逻辑备份:1.mysqldump(数据导出工具)mysqldump options db_name[table_name]//备份单个数据库mysqldump 选项 --database database-name1 [databases-name2]....//备份指定的数据库一个或者多个mysqldump 选项 --all-database //备份所有的数据库链接选项:-u :指定用户名-p:指定密码-h:指定服务器ip或者域名-P(大写):指定端口eg:/usr/bin/mysqldump -u root -h 202.194.132.237 -P 3306 -p BBS user>/home/wuxiaoxiao/user.txt输出内容选项:--add-drop-database:每个数据库创建语句之前加上drop database语句--add-drop-table:每个表创建
记mysql定时任务
今天使用到了mysql的定时任务功能,做下记录,感觉mysql要比oracle实现起来灵活。mysql 5.1:Create event crm_trunc_eventOn scheduleEvery 24 hourStarts now()DoBeginCall crm_statistic();End//[@more@]
ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL,
今天创建MYSQL的存储过程的时候遇到了:ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable) [@more@]查找相关资料:应该是我们开启了bin-log, 我们就必须指定我们的函数是否是 1 DETERMINISTIC 不确定的 2 NO SQL 没有SQl语句,当然也不会修改数据 3 READS SQL DATA 只是读取数据,当然也不会修改数据 4 MODIFIES SQL DATA 要修改数据 5 CONTAINS SQL 包含了
mysql生成随机数
DROP FUNCTION IF EXISTS rand_string; delimiter // CREATE FUNCTION rand_string(l_num tinyint UNSIGNED,l_type tinyint UNSIGNED) RETURNS varchar(127) BEGIN -- Function : rand_string -- Author : dbachina#dbachina.com -- Date : 2010/5/30 -- l_num : The length of random string -- l_type: The string type -- 1.0-9 -- 2.a-z -- 3.A-Z -- 4.a-zA-Z -- 5.0-9a-zA-Z -- <for example> : -- mysql> select rand_string(12,5) random_st
找出Mysql查询速度慢的SQL语句
启动Mysql时加参数--log-slow-queries来记录执行时间超过long_query_time秒的sql:[@more@]启动Mysql时加参数--log-slow-queries来记录执行时间超过long_query_time秒的sql: /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-locking --port=3306 --socket=/var/run/mysqld/mysqld.sock --log-slow-queries=/var/log/mysql/slow.logexplain来了解SQL执行的状态。 explain select * from wp_postsG; 使用show status like "Handler_read%"; 来了解索引的效果
【转】在同一台主机配置MySQL Cluster
MySQL cluster是share nothing的集群,采用ndb存储引擎,和Oracle的RAC采用集中存储不同,是一种分布式的架构,所以可以很轻松的实现在同一台主机上配置MySQL Cluster,相对RAC来说要简单得多。[@more@]在MySQL Cluster中,有三种不同的节点:管理节点:守护进程为ndb_mgmd,用于管理cluster。 数据节点: 守护进程为ndbd,用于存放数据 SQL节点:守护进程为mysqld,就是一个MySQL实例,对外供客户端连接访问数据。 本文将在一台64位linux主机上同时配置上述三种节点。在实际生产环境中,根据需要,可以在相同或者不同的机器部署节点。本次
mysql cluster 一台server安装
[@more@]环境:一台OSredhat linux 5.1 RAM 2G 硬盘空间:2G先创建mysql组和mysql用户:groupadd mysqluseradd -g mysql mysql下载软件:http://www.mysql.com/downloads/cluster/安装:[user1@ws2 ~]$ tar xvf Downloads/mysql-cluster-gpl-7.1.3-linux-x86_64-glibc23.tar.gz[user1@ws2 ~]$ ln -s mysql-cluster-gpl-7.1.3-linux-x86_64-glibc23 mysqlc将~/mysqlc/bin放到你的path环境变量下.配置:[user1@ws2 ~]$ mkdir my_cluster my_cluster/ndb_data my_cluster/mysqld_data my_cluster/conf在刚建的conf目录下,创建my.cnf和config.