crossz

Archive for the ‘mysql’ Category

HOWTO: backup / resotre mysql database for drupal

In drupal, mysql on December 5, 2009 at 8:12 am

To Backup:

  1. select the database need backup in phpMyAdmin
  2. select the tab of Export, and save as file in a sql format.

To resotre:

  1. upload the drupal installation files into the proper directory.
  2. copy the old director of /site/all, in which are the modules and themes to the new site directory. Otherwise some functionalities will miss.
  3. create the database you want in phpMyAdmin with proper database name.
  4. select the new database and Import.
  5. Install the new drupal site.

Mysql usages comparison in php, joomla and drupal

In joomla, mysql, php on February 1, 2009 at 12:48 pm



## php_mysql: ####

<?
$username="username";
$password="password";
$database="your_database";

$link = mysql_connect(localhost,$username,$password);
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';

@mysql_select_db($database) or die( "Unable to select database");
$query="SELECT * FROM contacts";
$result=mysql_query($query);

$num=mysql_numrows($result);

mysql_close();

echo "<b><center>Database Output</center></b><br><br>";

$i=0;
while ($i < $num) {

$first=mysql_result($result,$i,"first");
$last=mysql_result($result,$i,"last");
$phone=mysql_result($result,$i,"phone");
$mobile=mysql_result($result,$i,"mobile");
$fax=mysql_result($result,$i,"fax");
$email=mysql_result($result,$i,"email");
$web=mysql_result($result,$i,"web");

echo "<b>$first $last</b><br>Phone: $phone<br>Mobile: $mobile<br>Fax: $fax<br>E-mail: $email<br>Web: $web<br><hr><br>";

$i++;
}

?>

## Joomla_mysql: ####
## Normally in a helper class ####
<?php
/**
* Helper class for Hello World! module
*
* @package    Joomla.Tutorials
* @subpackage Modules
*/
class modHelloWorldHelper
{
function getHello( $userCount ){
        
        //$db = &JFactory::getDBO();
        $username="gigibri1_cross";
$password="zhengxin";
$database="gigibri1_dev";
        
        mysql_connect(localhost,$username,$password);
        @mysql_select_db($database) or die( "Unable to select database");

// get a list of all users
$query = 'SELECT * FROM jos_users';
//$db->setQuery($query);
$result = mysql_query($query);

$items = ($items = $db->loadObjectList())?$items:array();
// create a new array and fill it up with random users
$actualCount = count($items);
if ($actualCount < $userCount) {
    $userCount = $actualCount;
}
$items2 = array();
$rands = array_rand($items, $userCount);
foreach ($rands as $rand) {
     $items2[] = $items[$rand];
}
return $items2;

mysql_close();
return $result;
    }    
}

## Drupal_mysql: ####
## Normally in a module file ####
  $result_sell_price = db_fetch_object(db_query('SELECT i.sell_price FROM {image} i WHERE i.vid = %d', $node->vid));
  $node->sell_price=$result_sell_price->sell_price;
  
  
  
$result = db_query("SELECT i.image_size, f.filepath FROM {image} i INNER JOIN {files} f ON i.fid = f.fid WHERE i.nid = %d", $node->nid);
$node->images = array();
while ($file = db_fetch_object($result)) {
    $node->images[$file->image_size] = file_create_path($file->filepath);
}

Mysql usages comparison in php, joomla and drupal

In joomla, mysql, php on February 1, 2009 at 12:48 pm



## php_mysql: ####

<?
$username="username";
$password="password";
$database="your_database";

$link = mysql_connect(localhost,$username,$password);
if (!$link) {
    die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';

@mysql_select_db($database) or die( "Unable to select database");
$query="SELECT * FROM contacts";
$result=mysql_query($query);

$num=mysql_numrows($result);

mysql_close();

echo "<b><center>Database Output</center></b><br><br>";

$i=0;
while ($i < $num) {

$first=mysql_result($result,$i,"first");
$last=mysql_result($result,$i,"last");
$phone=mysql_result($result,$i,"phone");
$mobile=mysql_result($result,$i,"mobile");
$fax=mysql_result($result,$i,"fax");
$email=mysql_result($result,$i,"email");
$web=mysql_result($result,$i,"web");

echo "<b>$first $last</b><br>Phone: $phone<br>Mobile: $mobile<br>Fax: $fax<br>E-mail: $email<br>Web: $web<br><hr><br>";

$i++;
}

?>

## Joomla_mysql: ####
## Normally in a helper class ####
<?php
/**
* Helper class for Hello World! module
*
* @package    Joomla.Tutorials
* @subpackage Modules
*/
class modHelloWorldHelper
{
function getHello( $userCount ){
        
        //$db = &JFactory::getDBO();
        $username="gigibri1_cross";
$password="zhengxin";
$database="gigibri1_dev";
        
        mysql_connect(localhost,$username,$password);
        @mysql_select_db($database) or die( "Unable to select database");

// get a list of all users
$query = 'SELECT * FROM jos_users';
//$db->setQuery($query);
$result = mysql_query($query);

$items = ($items = $db->loadObjectList())?$items:array();
// create a new array and fill it up with random users
$actualCount = count($items);
if ($actualCount < $userCount) {
    $userCount = $actualCount;
}
$items2 = array();
$rands = array_rand($items, $userCount);
foreach ($rands as $rand) {
     $items2[] = $items[$rand];
}
return $items2;

mysql_close();
return $result;
    }    
}

## Drupal_mysql: ####
## Normally in a module file ####
  $result_sell_price = db_fetch_object(db_query('SELECT i.sell_price FROM {image} i WHERE i.vid = %d', $node->vid));
  $node->sell_price=$result_sell_price->sell_price;
  
  
  
$result = db_query("SELECT i.image_size, f.filepath FROM {image} i INNER JOIN {files} f ON i.fid = f.fid WHERE i.nid = %d", $node->nid);
$node->images = array();
while ($file = db_fetch_object($result)) {
    $node->images[$file->image_size] = file_create_path($file->filepath);
}

mysql user management

In mysql on January 20, 2009 at 3:04 pm

1.新建用户。

//登录MYSQL
@>mysql -u root -p
@>密码
//创建用户
mysql> insert into mysql.user(Host,User,Password) values(“localhost”,”phplamp”,password(“1234″));
//刷新系统权限表
mysql>flush privileges;
这样就创建了一个名为:phplamp 密码为:1234 的用户。

然后登录一下。

mysql>exit;
@>mysql -u phplamp -p
@>输入密码
mysql>登录成功

2.为用户授权。

//登录MYSQL(有ROOT权限)。我里我以ROOT身份登录.
@>mysql -u root -p
@>密码
//首先为用户创建一个数据库(phplampDB)
mysql>create database phplampDB;
//授权phplamp用户拥有phplamp数据库的所有权限。
>grant all privileges on phplampDB.* to phplamp@localhost identified by ‘1234″;
//刷新系统权限表
mysql>flush privileges;
mysql>其它操作

/*
如果想指定部分权限给一用户,可以这样来写:
mysql>grant select,update on phplampDB.* to phplamp@localhost identified by ‘1234″;
//刷新系统权限表。
mysql>flush privileges;
*/

3.删除用户。
@>mysql -u root -p
@>密码
mysql>DELETE FROM user WHERE User=”phplamp” and Host=”localhost”;
mysql>flush privileges;
//删除用户的数据库
mysql>drop database phplampDB;

4.修改指定用户密码
@>mysql -u root -p
@>密码
mysql>update mysql.user set password=password(‘新密码’) where User=”phplamp” and Host=”localhost”;
mysql>flush privileges;

mysql user management

In mysql on January 20, 2009 at 3:04 pm

准备:更改root的密码 (mysql安装后,root是没有密码的)
@>mysqladmin -uroot password YOURNEWPASSWORD

1.新建用户。

//登录MYSQL
@>mysql -u root -p
@>密码
//创建用户
mysql> insert into mysql.user(Host,User,Password) values(“localhost”,”cross”,password(“1234″));
//刷新系统权限表
mysql>flush privileges;
这样就创建了一个名为:cross 密码为:1234 的用户。

然后登录一下。

mysql>exit;
@>mysql -u cross -p
@>输入密码
mysql>登录成功

2.为用户授权。

//登录MYSQL(有ROOT权限)。我里我以ROOT身份登录.
@>mysql -u root -p
@>密码
//首先为用户创建一个数据库(joomla1)
mysql>create database joomla1;
//授权phplamp用户拥有phplamp数据库的所有权限。
>grant all privileges on joomla1.* to ‘cross’@localhost identified by ‘1234′;
//刷新系统权限表
mysql>flush privileges;
mysql>其它操作

/*
如果想指定部分权限给一用户,可以这样来写:
mysql>grant select,update on phplampDB.* to ‘phplamp’@localhost identified by ‘1234′;
//刷新系统权限表。
mysql>flush privileges;
*/

3.删除用户。
@>mysql -u root -p
@>密码
mysql>DELETE FROM user WHERE User=”phplamp” and Host=”localhost”;
mysql>flush privileges;
//删除用户的数据库
mysql>drop database phplampDB;

4.修改指定用户密码
@>mysql -u root -p
@>密码
mysql>update mysql.user set password=password(‘新密码’) where User=”phplamp” and Host=”localhost”;
mysql>flush privileges;

HOWTO: Mysql JOIN

In mysql on November 18, 2008 at 6:58 pm

MySQL LEFT JOIN Explanation

(blogged from: http://www.tizag.com/mysqlTutorial/mysqlleftjoin.php )

How is a LEFT JOIN different from a normal join? First of all, the syntax is quite different and somewhat more complex. Besides looking different, the LEFT JOIN gives extra consideration to the table that is on the left.

Being “on the left” simply refers to the table that appears before the LEFT JOIN in our SQL statement. Nothing tricky about that.

This extra consideration to the left table can be thought of as special kind of preservation. Each item in the left table will show up in a MySQL result, even if there isn’t a match with the other table that it is being joined to.

MySQL Join and LEFT JOIN Differences

Here are the tables we used in the previous Mysql Joins lesson.

MySQL family and food Tables:

Position Age
Dad 41
Mom 45
Daughter 17
Dog
Meal Position
Steak Dad
Salad Mom
Spinach Soup
Tacos Dad

We executed a simple query that selected all meals that were liked by a family member with this simple join query:

Simplified MySQL Query:

SELECT food.Meal, family.PositionFROM family, food WHERE food.Position = family.Position

Result:

Dad – Steak
Mom – Salad
Dad – Tacos

When we decide to use a LEFT JOIN in the query instead, all the family members be listed, even if they do not have a favorite dish in our food table.

This is because a left join will preserve the records of the “left” table.

MySQL LEFT JOIN Example

The code below is the exact same as the code in the previous lesson, except the LEFT JOIN has now been added to the query. Let’s see if the results are what we expected.

PHP and MySQL Code:

<?php// Make a MySQL Connection// Construct our join query$query = "SELECT family.Position, food.Meal "."FROM family LEFT JOIN food ". "ON family.Position = food.Position";

$result = mysql_query($query) or die(mysql_error());

// Print out the contents of each row into a tablewhile($row = mysql_fetch_array($result)){ echo $row['Position']. " - ". $row['Meal']; echo "";}?>

Display:

Dad – Steak
Dad – Tacos
Mom – Salad
Daughter -
Dog –

Success! The LEFT JOIN preserved every family member, including those who don’t yet have a favorite meal in the food table! Please feel free to play around with LEFT JOIN until you feel like you have a solid grasp of it. This stuff isn’t easy!

Another example for ‘JOIN’, ‘LEFT JOIN’ and ‘RIGHT JOIN’ is here:

http://www.wellho.net/mouth/158_MySQL-LEFT-JOIN-and-RIGHT-JOIN-INNER-JOIN-and-OUTER-JOIN.html

mysql, simple commands 2008

In howto, mysql on November 18, 2008 at 5:50 pm
Selecting a database:

mysql> USE database;

Listing databases:

mysql> SHOW DATABASES;

Listing tables in a db:

mysql> SHOW TABLES;

Describing the format of a table:

mysql> DESCRIBE table;

Creating a database:

mysql> CREATE DATABASE db_name;

Creating a table:

mysql> CREATE TABLE table_name (field1_name TYPE(SIZE), field2_name TYPE(SIZE));Ex: mysql> CREATE TABLE pet (name VARCHAR(20), sex CHAR(1), birth DATE);

Load tab-delimited data into a table:

mysql> LOAD DATA LOCAL INFILE "infile.txt" INTO TABLE table_name;(Use \n for NULL)

Inserting one row at a time:

mysql> INSERT INTO table_name VALUES ('MyName', 'MyOwner', '2002-08-31');(Use NULL for NULL)

Retrieving information (general):

mysql> SELECT from_columns FROM table WHERE conditions;All values: SELECT * FROM table;Some values: SELECT * FROM table WHERE rec_name = "value";Multiple critera: SELECT * FROM TABLE WHERE rec1 = "value1" AND rec2 = "value2";

Reloading a new data set into existing table:

mysql> SET AUTOCOMMIT=1; # used for quick recreation of tablemysql> DELETE FROM pet;mysql> LOAD DATA LOCAL INFILE "infile.txt" INTO TABLE table;

Fixing all records with a certain value:

mysql> UPDATE table SET column_name = "new_value" WHERE record_name = "value";

Selecting specific columns:

mysql> SELECT column_name FROM table;

Retrieving unique output records:

mysql> SELECT DISTINCT column_name FROM table;

Sorting:

mysql> SELECT col1, col2 FROM table ORDER BY col2;Backwards: SELECT col1, col2 FROM table ORDER BY col2 DESC;

Date calculations:

mysql> SELECT CURRENT_DATE, (YEAR(CURRENT_DATE)-YEAR(date_col)) AS time_diff [FROM table];MONTH(some_date) extracts the month value and DAYOFMONTH() extracts day.

Pattern Matching:

mysql> SELECT * FROM table WHERE rec LIKE "blah%";(% is wildcard - arbitrary # of chars)Find 5-char values: SELECT * FROM table WHERE rec like "_____";(_ is any single character)

Extended Regular Expression Matching:

mysql> SELECT * FROM table WHERE rec RLIKE "^b$";(. for char, [...] for char class, * for 0 or more instances^ for beginning, {n} for repeat n times, and $ for end)(RLIKE or REGEXP)To force case-sensitivity, use "REGEXP BINARY"

Counting Rows:

mysql> SELECT COUNT(*) FROM table;

Grouping with Counting:

mysql> SELECT owner, COUNT(*) FROM table GROUP BY owner;(GROUP BY groups together all records for each 'owner')

Selecting from multiple tables:

(Example)mysql> SELECT pet.name, comment FROM pet, event WHERE pet.name = event.name;(You can join a table to itself to compare by using 'AS')

Currently selected database:

mysql> SELECT DATABASE();

Maximum value:

mysql> SELECT MAX(col_name) AS label FROM table;

Auto-incrementing rows:

mysql> CREATE TABLE table (number INT NOT NULL AUTO_INCREMENT, name CHAR(10) NOT NULL);mysql> INSERT INTO table (name) VALUES ("tom"),("dick"),("harry");

Adding a column to an already-created table:

mysql> ALTER TABLE tbl ADD COLUMN [column_create syntax] AFTER col_name;

Removing a column:

mysql> ALTER TABLE tbl DROP COLUMN col;(Full ALTER TABLE syntax available at mysql.com.)

Batch mode (feeding in a script):

# mysql -u user -p  source batch_file;

Backing up a database with mysqldump:

# mysqldump --opt -u username -p database > database_backup.sql(Use 'mysqldump --opt --all-databases > all_backup.sql' to backup everything.)(More info at MySQL's docs.)

Join tables:# SELECT * FROM cars JOIN colors ON colors.car_ID=cars.id# SELECT * FROM cars AS cr JOIN colors AS cl ON cl.car_ID=cr.idAfter the ON, we state on wich columns the tables should join. Every color has a reference to a car by the "car_ID" column. Every car has anID, and these two columns are the link between the two tables.

mysql linux

In howto, linux, mysql on June 10, 2007 at 5:45 pm

一、引言

  想使用Linux已经很长时间了,由于没有硬性任务一直也没有系统学习,近日由于工作需要必须使用Linux下的 MySQL。本以为有Windows下使用SQL Server的经验,觉得在Linux下安装MySql应该是易如反掌的事,可在真正安装和使用MySQL时走了很多弯路,遇见很多问题,毕竟Linux 和Windows本身就有很大区别。为了让和我一样的初学者在学习的过程中少走弯路,尽快入门,写了此文,希望对您有所帮助。本文的Linux环境是 Red Hat 9.0,MySQL是4.0.16。

二、安装Mysql

  1、下载MySQL的安装文件
  安装MySQL需要下面两个文件:
  MySQL-server-4.0.16-0.i386.rpm   
  MySQL-client-4.0.16-0.i386.rpm
  下载地址为:http://www.mysql.com/downloads/mysql-4.0.html,打开此网页,下拉网页找到“Linux x86 RPM downloads”项,找到“Server”和“Client programs”项,下载需要的上述两个rpm文件。

  2、安装MySQL
  rpm文件是Red Hat公司开发的软件安装包,rpm可让Linux在安装软件包时免除许多复杂的手续。该命令在安装时常用的参数是 ?ivh ,其中i表示将安装指定的rmp软件包,V表示安装时的详细信息,h表示在安装期间出现“#”符号来显示目前的安装过程。这个符号将持续到安装完成后才停止。
  1)安装服务器端
  在有两个rmp文件的目录下运行如下命令:
  [root@test1 local]# rpm -ivh MySQL-server-4.0.16-0.i386.rpm
  显示如下信息。
    warning: MySQL-server-4.0.16-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5
  Preparing…       ########################################### [100%]
  1:MySQL-server     ########################################### [100%]
   。。。。。。(省略显示)
  /usr/bin/mysqladmin -u root password ‘new-password’
  /usr/bin/mysqladmin -u root -h test1 password ‘new-password’
   。。。。。。(省略显示)
  Starting mysqld daemon with databases from /var/lib/mysql
  如出现如上信息,服务端安装完毕。测试是否成功可运行netstat看Mysql端口是否打开,如打开表示服务已经启动,安装成功。Mysql默认的端口是3306。
  [root@test1 local]# netstat -nat
  Active Internet connections (servers and established)
  Proto Recv-Q Send-Q Local Address      Foreign Address     State   
  tcp  0  0 0.0.0.0:3306     0.0.0.0:*      LISTEN   
  上面显示可以看出MySQL服务已经启动。
  2)安装客户端
  运行如下命令:
  [root@test1 local]# rpm -ivh MySQL-client-4.0.16-0.i386.rpm
  warning: MySQL-client-4.0.16-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5
  Preparing…    ########################################### [100%]
  1:MySQL-client  ########################################### [100%]
  显示安装完毕。
  用下面的命令连接mysql,测试是否成功。
三、登录MySQL

  登录MySQL的命令是mysql, mysql 的使用语法如下:
  mysql [-u username] [-h host] [-p[password]] [dbname]
  username 与 password 分别是 MySQL 的用户名与密码,mysql的初始管理帐号是root,没有密码,注意:这个root用户不是Linux的系统用户。MySQL默认用户是root,由于初始没有密码,第一次进时只需键入mysql即可。
  [root@test1 local]# mysql
  Welcome to the MySQL monitor. Commands end with ; or \g.
  Your MySQL connection id is 1 to server version: 4.0.16-standard
  Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
  mysql>
  出现了“mysql>”提示符,恭喜你,安装成功!
  增加了密码后的登录格式如下:
  mysql -u root -p
  Enter password: (输入密码)
  其中-u后跟的是用户名,-p要求输入密码,回车后在输入密码处输入密码。

  注意:这个mysql文件在/usr/bin目录下,与后面讲的启动文件/etc/init.d/mysql不是一个文件。

四、MySQL的几个重要目录

  MySQL安装完成后不象SQL Server默认安装在一个目录,它的数据库文件、配置文件和命令文件分别在不同的目录,了解这些目录非常重要,尤其对于Linux的初学者,因为 Linux本身的目录结构就比较复杂,如果搞不清楚MySQL的安装目录那就无从谈起深入学习。

  下面就介绍一下这几个目录。

  1、数据库目录
  /var/lib/mysql/

  2、配置文件
  /usr/share/mysql(mysql.server命令及配置文件)

  3、相关命令
  /usr/bin(mysqladmin mysqldump等命令)

  4、启动脚本
  /etc/rc.d/init.d/(启动脚本文件mysql的目录)
五、修改登录密码

  MySQL默认没有密码,安装完毕增加密码的重要性是不言而喻的。

  1、命令
  usr/bin/mysqladmin -u root password ‘new-password’
  格式:mysqladmin -u用户名 -p旧密码 password 新密码

  2、例子
  例1:给root加个密码123456。
  键入以下命令 :
  [root@test1 local]# /usr/bin/mysqladmin -u root password 123456
  注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。

  3、测试是否修改成功
   1)不用密码登录
  [root@test1 local]# mysql
  ERROR 1045: Access denied for user: ‘root@localhost’ (Using password: NO)
  显示错误,说明密码已经修改。
  2)用修改后的密码登录
  [root@test1 local]# mysql -u root -p
  Enter password: (输入修改后的密码123456)
  Welcome to the MySQL monitor. Commands end with ; or \g.
  Your MySQL connection id is 4 to server version: 4.0.16-standard
  Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
  mysql>
  成功!
  这是通过mysqladmin命令修改口令,也可通过修改库来更改口令。

六、启动与停止

  1、启动
  MySQL安装完成后启动文件mysql在/etc/init.d目录下,在需要启动时运行下面命令即可。
  [root@test1 init.d]# /etc/init.d/mysql start

  2、停止
  /usr/bin/mysqladmin -u root -p shutdown

  3、自动启动
  1)察看mysql是否在自动启动列表中
  [root@test1 local]# /sbin/chkconfig ?list
  2)把MySQL添加到你系统的启动服务组里面去
  [root@test1 local]# /sbin/chkconfig ? add mysql
  3)把MySQL从启动服务组里面删除。
  [root@test1 local]# /sbin/chkconfig ? del mysql
七、更改MySQL目录

  MySQL默认的数据文件存储目录为/var/lib/mysql。假如要把目录移到/home/data下需要进行下面几步:

  1、home目录下建立data目录
  cd /home
  mkdir data

  2、把MySQL服务进程停掉:
  mysqladmin -u root -p shutdown

  3、把/var/lib/mysql整个目录移到/home/data
  mv /var/lib/mysql /home/data/
  这样就把MySQL的数据文件移动到了/home/data/mysql下

  4、找到my.cnf配置文件
  如果/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/下找到*.cnf文件,拷贝其中一个到/etc/并改名为my.cnf)中。命令如下:
   [root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

  5、编辑MySQL的配置文件/etc/my.cnf
  为保证MySQL能够正常工作,需要指明mysql.sock文件的产生位置。 修改socket=/var/lib/mysql/mysql.sock一行中等号右边的值为:/home/mysql/mysql.sock 。操作如下:
   vi  my.cnf    (用vi工具编辑my.cnf文件,找到下列数据修改之)
   # The MySQL server
    [mysqld]
    port   = 3306
   #socket  = /var/lib/mysql/mysql.sock(原内容,为了更稳妥用“#”注释此行)
    socket  = /home/data/mysql/mysql.sock   (加上此行)

  6、修改MySQL启动脚本/etc/rc.d/init.d/mysql
  最后,需要修改MySQL启动脚本/etc/rc.d/init.d/mysql,把其中datadir=/var/lib/mysql一行中,等号右边的路径改成你现在的实际存放路径:home/data/mysql。
  [root@test1 etc]# vi /etc/rc.d/init.d/mysql
  #datadir=/var/lib/mysql    (注释此行)
  datadir=/home/data/mysql   (加上此行)

  7、重新启动MySQL服务
  /etc/rc.d/init.d/mysql start
  或用reboot命令重启Linux
  如果工作正常移动就成功了,否则对照前面的7步再检查一下。

八、MySQL的常用操作

  注意:MySQL中每个命令后都要以分号;结尾。

  1、显示数据库
  mysql> show databases;
  +———-+
   Database
  +———-+
   mysql  
   test  
  +———-+
  2 rows in set (0.04 sec)
  Mysql刚安装完有两个数据库:mysql和test。mysql库非常重要,它里面有MySQL的系统信息,我们改密码和新增用户,实际上就是用这个库中的相关表进行操作。

  2、显示数据库中的表
  mysql> use mysql; (打开库,对每个库进行操作就要打开此库,类似于foxpro )
  Database changed

  mysql> show tables;
  +—————–+
   Tables_in_mysql
  +—————–+
   columns_priv  
   db       
   func      
   host      
   tables_priv  
   user      
  +—————–+
  6 rows in set (0.01 sec)

  3、显示数据表的结构:
  describe 表名;

  4、显示表中的记录:
  select * from 表名;
  例如:显示mysql库中user表中的纪录。所有能对MySQL用户操作的用户都在此表中。
  Select * from user;

  5、建库:
  create database 库名;
  例如:创建一个名字位aaa的库
  mysql> create databases aaa;
6、建表:
  use 库名;
  create table 表名 (字段设定列表);
  例如:在刚创建的aaa库中建立表name,表中有id(序号,自动增长),xm(姓名),xb(性别),csny(出身年月)四个字段
  use aaa;
  mysql> create table name (id int(3) auto_increment not null primary key, xm char(8),xb char(2),csny date);
  可以用describe命令察看刚建立的表结构。
  mysql> describe name;

  +——-+———+——+—–+———+—————-+
   Field Type   Null Key Default Extra     
  +——-+———+——+—–+———+—————-+
   id   int(3)     PRI NULL   auto_increment
   xm   char(8) YES    NULL          
   xb   char(2) YES    NULL          
   csny  date   YES    NULL          
  +——-+———+——+—–+———+—————-+

  7、增加记录
  例如:增加几条相关纪录。
  mysql> insert into name values(‘’,’张三’,’男’,’1971-10-01′);
  mysql> insert into name values(‘’,’白云’,’女’,’1972-05-20′);
  可用select命令来验证结果。
  mysql> select * from name;
  +—-+——+——+————+
   id xm  xb  csny   
  +—-+——+——+————+
   1 张三 男  1971-10-01
   2 白云 女  1972-05-20
  +—-+——+——+————+

wildcard in Mysql is ‘%’. But if it’s used, where should work with ‘like’.
mysql> select * from name where xm like ‘%三’;

  8、修改纪录
  例如:将张三的出生年月改为1971-01-10
  mysql> update name set csny=’1971-01-10′ where xm=’张三’;

  9、删除纪录
  例如:删除张三的纪录。
  mysql> delete from name where xm=’张三’;

  10、删库和删表
  drop database 库名;
  drop table 表名;

  九、增加MySQL用户

  格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”
例1、增加一个用户user_1密码为123,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MySQL,然后键入以下命令:

  mysql> grant select,insert,update,delete on *.* to user_1@”%” Identified by “123″;
例1增加的用户是十分危险的,如果知道了user_1的密码,那么他就可以在网上的任何一台电脑上登录你的MySQL数据库并对你的数据为所欲为了,解决办法见例2。

   例2、增加一个用户user_2密码为123,让此用户只可以在localhost上登录,并可以对数据库aaa进行查询、插入、修改、删除的操作(localhost指本地主机,即MySQL数据库所在的那台主机),这样用户即使用知道user_2的密码,他也无法从网上直接访问数据库,只能通过 MYSQL主机来操作aaa库。

  mysql>grant select,insert,update,delete on aaa.* to user_2@localhost identified by “123″;

  用新增的用户如果登录不了MySQL,在登录时用如下命令:

  mysql -u user_1 -p -h 192.168.113.50 (-h后跟的是要登录主机的ip地址)

十、备份与恢复

  1、备份

  例如:将上例创建的aaa库备份到文件back_aaa中

  [root@test1 root]# cd /home/data/mysql (进入到库目录,本例库已由val/lib/mysql转到/home/data/mysql,见上述第七部分内容)
  [root@test1 mysql]# mysqldump -u root -p –opt aaa > back_aaa

  2、恢复

  [root@test mysql]# mysql -u root -p ccc

jsp+mysql server setting

In howto, mysql on June 9, 2007 at 9:51 pm

1.java-sdk
2.tomcat
3.mysql
4.mysql driver for jdbc: just copy the mysql*.bin.jar to /tomcat/lib 即可。
以防万一,有些程序特殊要求,在1,2,3所有lib文件夹里都放一个,jre/lib/ext/和jsp所在folder里的WEB-INF/lib/也放一个。

simple Mysql

In howto, mysql on April 25, 2007 at 4:39 pm

一、连接MySQL。
格式: mysql -h主机地址 -u用户名 -p用户密码
1、例1:连接到本机上的MYSQL。
  首先在打开 DOS 窗口,然后进入目录 mysql\bin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好 MySQL,超级用户 root 是没有密码的,故直接回车即可进入到 MySQL 中了,MySQL 的提示符是:mysql>
2、例2:连接到远程主机上的 MySQL。
  假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:
mysql -h110.110.110.110 -uroot -pabcd123
(注:u与root可以不用加空格,其它也一样)
3、退出 MySQL 命令: exit (回车)
二、修改密码。
格式:mysqladmin -u用户名 -p旧密码 password 新密码
1、例1:给root加个密码ab12。首先在DOS下进入目录mysqlbin,然后键入以下命令
mysqladmin -uroot -password ab12
注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。
2、例2:再将root的密码改为djg345。
mysqladmin -uroot -pab12 password djg345
三、增加新用户。
(注意:和上面不同,下面的因为是 MySQL 环境中的命令,所以后面都带一个分号作为命令结束符)
格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”
例1、增加一个用户 test1 密码为 abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以 root 用户连入 MySQL,然后键入以下命令:
grant select, insert, update, delete on *.* to mailto:test1@” Identified by “abc”;
但例1增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见例2。
例2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库 mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。
grant select, insert, update,delete on mydb.* to test2@localhost identified by “abc”;
  如果你不想test2有密码,可以再打一个命令将密码消掉。
grant select, insert, update, delete on mydb.* to test2@localhost identified by “”;
  在上篇我们讲了登录、增加用户、密码更改等问题。下篇我们来看看MYSQL中有关数据库方面的操作。注意:你必须首先登录到MYSQL中,以下操作都是在MYSQL的提示符下进行的,而且每个命令以分号结束。
一、操作技巧
1、如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回车就可以了。也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束标志就OK。
2、你可以使用光标上下键调出以前的命令。但以前我用过的一个MYSQL旧版本不支持。我现在用的是mysql-3.23.27-beta-win。
二、显示命令
1、显示数据库列表。
show databases;
  刚开始时才两个数据库:mysql 和 test。mysql 库很重要它里面有 MySQL 的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。
2、显示库中的数据表:
use mysql; //打开库,学过 FOXBASE 的一定不会陌生吧
show tables;
3、显示数据表的结构:
describe 表名;
4、建库:
create database 库名;
5、建表:
use 库名;
create table 表名 (字段设定列表);
6、删库和删表:
drop database 库名;
drop table 表名;
7、将表中记录清空:
delete from 表名;
8、显示表中的记录:
select * from 表名;
9、显示当前数据库名字:
select database();
三、一个建库和建表以及插入数据的实例
drop database if exists school; //如果存在SCHOOL则删除create database school; //建立库SCHOOLuse school; //打开库SCHOOLcreate table teacher //建立表TEACHER( id int(3) auto_increment not null primary key, name char(10) not null, address varchar(50) default ‘深圳’, year date); //建表结束
//以下为插入字段insert into teacher values(”,’glchengang’,'深圳一中’,'1976-10-10′);insert into teacher values(”,’jack’,'深圳一中’,'1975-12-23′);
  注:在建表中(1)将 ID 设为长度为 3 的数字字段 int(3) 并让它每个记录自动加一,auto_increment 并不能为空 not null 而且让他成为主字段 primary key(2)将 NAME 设为长度为 10 的字符字段(3)将 ADDRESS 设为长度 50 的字符字段,而且缺省值为深圳。varchar 和char 有什么区别呢,只有等以后的文章再说了。(4)将 YEAR 设为日期字段。
  如果你在 MySQL 提示符键入上面的命令也可以,但不方便调试。你可以将以上命令原样写入一个文本文件中假设为 school.sql,然后复制到 c:\ 下,并在 DOS 状态进入目录 \mysql\bin\ ,然后键入以下命令:
mysql -uroot -p密码 school.bbb
  注释:将数据库 school 备份到 school.bbb 文件,school.bbb 是一个文本文件,文件名任取,打开看看你会有新发现。