存档

‘数据库技术’ 分类的存档

最近在工作的时候,要将原来在本机开发的 MySQL存储过程迁往另一Linux操作系统下的MySQL数据库,因为表结构等已经在目标数据库中存在了,不想直接拷贝数据库过去,所以用到了MySQL的存储过程导出和导入,经上网搜索发现用Mysqldump工具可以实现,具体用法为:
[root@localhost bin]# mysqldump -uroot -p -hlocalhost -P3306 -n -d -t -R DBName > procedure_name.sql
参数说明:
-n:   –no-create-db
-d:   –no-data
-t:   –no-create-info
-R:   –routines Dump stored routines (functions and procedures)
Mysqldump是客户端工具用来备份数据库或在不同数据库之间进行数据迁移。备份内容包含创建活装载表的SQL语句:
主要参数介绍:
1.连接选项
-u,–user=name
-p,–password=name
-h,–host=name
-P,–port=#
2.输出内容选项
–add-drop-database
–add-drop-table
-n;–no-create-db
-d;–no-data
-t;–no-create-info
3.输出格式选项
–compact
-c –complete-insert
-T(指定数据表中的数据备份为单纯的数据文件和建表SQL两个文件)
注意:xx.sql建表文件是以linux的root用户创建,而xx.txt文件则是一linux的mysql用户创建,因此这两个文件的存放路径一定要保证mysql用户有读写创建文件的权限。
–fields-terminated-by=name(域分隔符)
–fields-enclosed-by=name(域引用符)
–fields-optionally-enclosed-by=name(域引用可选字符)
–fields-escaped-by=name(转义字符)
4.字符集选项
–default–character-set=xx
5.其他选项
-F –flush-logs(备份前刷新日志)
-l –lock-tables(给所有的表加读锁)

五 27th, 2010 | Filed under Linux相关, 数据库技术, 系统架构及硬件

今天遇到PDO处理事务部分的报错:
Fatal error: Uncaught exception ‘PDOException’ with message ‘There is no active transaction’ in /data/www/web.passport/pay/classes/class.Mydb.php:145 Stack trace: #0 /data/www/web.passport/pay/classes/class.Mydb.php(145): PDO->rollBack() #1 /data/www/web.passport/pay/yeepayOrder.php(138): Mydb->transaction(Array) #2 {main} thrown in /data/www/web.passport/pay/classes/class.Mydb.php on line 145
查找错误日志看到:
2009-01-16 09:27:57: 事务处理出错:SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, [...]

五 27th, 2010 | Filed under 数据库技术, 系统架构及硬件

简 介
  MySQL是一个真正的多用户、多线程SQL数据库服务器。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。
  SQL是一种标准化的语言,它使得存储、更新和存取信息更容易。例如,你能用SQL语言为一个网站检索产品信息及存储顾客信息,同时MySQL也足够快和灵活以允许你存储记录文件和图像。
  MySQL 主要目标是快速、健壮和易用。最初是因为我们需要这样一个SQL服务器,它能处理与任何可不昂贵硬件平台上提供数据库的厂家在一个数量级上的大型数据库,但速度更快,MySQL就开发出来。自1996年以来,我们一直都在使用MySQL,其环境有超过 40 个数据库,包含 10,000个表,其中500多个表超过7百万行,这大约有100 个吉字节(GB)的关键应用数据。
  MySQL建立的基础是业已用在高要求的生产环境多年的一套实用例程。尽管MySQL仍在开发中,但它已经提供一个丰富和极其有用的功能集。
  MySQL的官方发音是”My Ess Que Ell”(不是 MY-SEQUEL )。
  第一节 MySQL的安装
  1.1 所需资源
  MySQL-3.22.32-1.i386.rpm
  MySQL-client-3.22.32-1.i386.rpm
  1.2 安装方法
  第一步:rpm -ivh MySQL-3.22.32-1.i386.rpm
  第二步:rpm -ivh MySQL-3.22.32-1.i386.rpm
  第三步:执行mysql,启动MySQL monitor就可以使用mysql数据库了。
  第二节 MySQL的使用
  2.1 启动MySQL守护进程
  /etc/rc.d/init.d/mysql start
  2.2 关闭MySQL守护进程
  /etc/rc.d/init.d/mysql stop
  2.3 检查MySQL服务器是否已经运行
2.3.1 检查MySQL的属性
    /usr/bin/mysqladmin variables
2.3.2 检查MySQL的版本信息
    /usr/bin/mysqladmin version
2.3.3 检查MySQL的运行状态
    /usr/bin/mysqladmin status
2.3.4 检查MySQL服务器此时正运行的线程信息
    /usr/bin/mysqladmin processlist
  2.4 连接和断开服务器 2.4.1 连接服务器
    mysql -h host -u user -p
    #要求输入口令
2.4.2 断开服务器
    quit
    #进入MySQL之后可以敲help来获取帮助信息
  2.5 MySQL存取权限的控制
  MySQL的存取控制技术功能强大,比Postgres更加具有灵活性。MySQL采用的用户名和密码的加密算法与Unix系统不尽相同,其用户名可以长达16个字符。
  先以root登陆MySQl,然后在MySQL的提示符下键入grant all privileges on *.* to thj@localhost identified by ‘thj’ with [...]

五 25th, 2010 | Filed under Linux相关, 数据库技术, 系统架构及硬件

1、通过rpm包安装的MySQL
service mysqld restart
2、从源码包安装的MySQL
// linux关闭MySQL的命令
$mysql_dir/bin/mysqladmin -uroot -p shutdown
// linux启动MySQL的命令
$mysql_dir/bin/mysqld_safe &
其中mysql_dir为MySQL的安装目录,mysqladmin和mysqld_safe位于MySQL安装目录的bin目录下,很容易找到的。
3、以上方法都无效的时候,可以通过强行命令:“killall mysql”来关闭MySQL,但是不建议用这样的方式,因为这种野蛮的方法会强行终止MySQL数据库服务,有可能导致表损坏……所以自己掂量着用。

五 18th, 2010 | Filed under Linux相关, 数据库技术, 系统架构及硬件
标签:

一. 安装MySQL
我使用的的Mysql是4.1.10,源代码版,你也可以使用RPM包或者二进制版,安装方法可能不一样,请参考其它文章.
先下载Mysql4.1.10的源代码版,地址: http://dev.mysql.com/downloads/mysql/4.0.html
把它下到/usr/local/src目录下,如果没有该目录,就自己建一个.下载回来的包名字叫 mysql-4.1.10.tar.gz,然后我们把它解压出来:
# tar -zxvf mysql-4.1.10.tar.gz
解压后生成mysql-4.1.10目录,我们进入该目录:
# cd mysql-4.1.10
进入后就开始配置mysql了,配置过程中我们要给mysql设置一个安装目录,我们设置在 /usr/local/mysql 下,以为把文件放到一个地方比较容易
管理,如果你还想获得更多的配置信息,使用 ./configure –help: 
# ./configure –prefix=/usr/local/mysql
(./configure –with-libc=/usr/local/glibc-2.4 –prefix=/usr/local/mysql)
然后等几秒钟,配置完成后就编译源代码:
# make
这个编译的过程比较长,如果机器比较慢的话,可能要近二十分种 ( PS:我的机器是很普通的机器,所有用了差不多15,6分种 ) . 编译完成后就安装:
# make install
等上几秒钟,安装完成.下面就到了最关键的部分了,为什么老安装不成功,(PS:至少我是安装了N次,N > 10 ,呵呵),问题关键就在这里,访问 mysql要一个专门的用户,而且必须给相应的访问权限,这里我们就设置root和mysql有权限访问.
我们先建立一个mysql和mysql组用户来访问mysql:
# (pw)  groupadd mysql #建立mysql组
# (pw) useradd mysql -g mysql #建立mysql用户并且加入到mysql组中
建立用户后我们就初始化表 (注意:必须先执行本步骤后才能进行以下步骤)
# ./scripts/mysql_install_db –user=mysql #初试化表并且规定用mysql用户来访问
初始化表以后就开始给mysql和root用户设定访问权限, 我们先到安装mysql的目录:
# cd /usr/local/mysql
然后设置权限
# chown -R root . #设定root能访问/usr/local/mysql
# chown -R [...]

OS:linux as 4.2
软件列表:
1
mysql-5.0.41-linux-i686.tar
http://www.mysql.com
2
httpd-2.0.58.tar
http://www.apache.org
3
php-5.2.3.tar
http://www.php.net
4
jdk-6u1-linux-i586
http://java.sun.com/javase/downloads/index.jsp
5
apache-tomcat-6.0.13.tar
http://tomcat.apache.org/download-60.cgi
6
tomcat与apache联接器
tomcat-connectors-1.2.23-src.tar.gz
http://tomcat.apache.org/download-connectors.cgi
7
resin
http://www.caucho.com
开始安装:
1安装mysql
tar zxvf mysql-5.0.41-linux-i686.tar.gz
[root@ns2 software]# cd mysql-5.0.41-linux-i686
[root@ns2 local]#groupadd mysql
[root@ns2 local]#useradd -g mysql mysql
[root@ns2 local]#mv mysql-5.0.41-linux-i686 /usr/local/mysql -f
[root@ns2 local]#cd /usr/local/mysql
[root@ns2 local]# chown -R mysql.mysql ./
[root@ns2 local]#scripts/mysql_install_db –user=mysql
[root@ns2 local]#chown -R root .
[root@ns2 local]#chown -R mysql data
[root@ns2 local]#chgrp -R mysql .
[root@ns2 local]#bin/mysqld_safe –user=mysql &
这样MySQL就已经启动了,下面为root用户设置密码:
[root@ns2 local]# ./bin/mysqladmin -u root password ‘password’
[root@ns2 local]# ./bin/mysqladmin -u root -h localhost.localdomain password [...]

目标:[通过此学习练习能够利用rpm包方式安装MySQL数据库,能够对MySQL数据库进行管理授权,备份等技术.]
纲要:
一,连接MySQL
二,MySQL管理与授权
三,数据库简单操作
四, 数据库备份
五,后记
一,安装连接MySQL
先查看mysql是否安装:
rpm -qa|grep mysql -i (我用的是rpm包方式安装,查看是否安装此包)
具体安装可以使用rpm或tarball方式安装,详细方法请google.
格式:mysql -h 远程主机地址 -u 用户名 -p 回车
输入密码进入:
mysql -u root -p 回车
Enter password: ,输入密码就可以进入
mysql> 进入了
退出命令:>exit 或者ctrl+D
二,MySQL管理与授权
1.修改密码:
格式:mysqladmin -u 用户名 -p 旧密码 password 新密码
2.增加新用户:
>grant create,select,update….(授予相关的操作权限)
->on 数据库.*
-> to 用户名@登录主机 identified by ‘密码’
操作实例:
给root用户添加密码:
# mysqladmin -u root password 52netseek
因为开始root没有密码,所以-p旧密码一项可以省略.
登陆测试:
# mysql -u root -p 回车
输入密码,成功登陆.
将原有的mysql管理登陆密码52netseek改为52china.
# mysqladmin -u root -p 52netseek password ‘52china’
创建数据库添加用户并授予相应的权限:
mysql> create database phpbb;
Query OK, 1 [...]

四 20th, 2010 | Filed under Linux相关, 数据库技术, 系统架构及硬件

所收集的 一次性删除全部mysql的数据表 的方法,会用到的

四 19th, 2010 | Filed under 数据库技术

忘记MySQL密码的解决方法

四 19th, 2010 | Filed under 数据库技术