个人工具

“UbuntuHelp:JDBCAndMySQL”的版本间的差异

来自Ubuntu中文

跳转至: 导航, 搜索
(New page: {{From|https://help.ubuntu.com/community/JDBCAndMySQL}} {{Languages|php5}} '''For Ubuntu versions : 5.10, 6.06, 6.10, 7.04''' == Introduction == This document explains how to set up Java...)
 
第18行: 第18行:
 
sudo apt-get install mysql-client
 
sudo apt-get install mysql-client
 
sudo apt-get install libmysql-java
 
sudo apt-get install libmysql-java
</nowiki></code>
+
</nowiki></pre>
  
 
''On 5.10 you may need select "No configuration" for postfix if it is installed.''
 
''On 5.10 you may need select "No configuration" for postfix if it is installed.''
第28行: 第28行:
 
<pre><nowiki>
 
<pre><nowiki>
 
mysqladmin -u root password root
 
mysqladmin -u root password root
</nowiki></code>
+
</nowiki></pre>
  
 
Check you can connect to mysql
 
Check you can connect to mysql
第34行: 第34行:
 
<pre><nowiki>
 
<pre><nowiki>
 
mysql -u root -p
 
mysql -u root -p
</nowiki></code>
+
</nowiki></pre>
  
 
then enter the password you just set and press return again. In this case it would be "root".
 
then enter the password you just set and press return again. In this case it would be "root".
第44行: 第44行:
 
<pre><nowiki>
 
<pre><nowiki>
 
create database emotherearth;
 
create database emotherearth;
</nowiki></code>
+
</nowiki></pre>
  
 
== User creation and privileges ==
 
== User creation and privileges ==
第53行: 第53行:
 
grant all privileges on [database].* to [user]@localhost identified by "[password]";
 
grant all privileges on [database].* to [user]@localhost identified by "[password]";
 
flush privileges;
 
flush privileges;
</nowiki></code>
+
</nowiki></pre>
  
 
''Note: Ubuntu 5.10 requires localhost.localdomain''
 
''Note: Ubuntu 5.10 requires localhost.localdomain''
第63行: 第63行:
 
<pre><nowiki>
 
<pre><nowiki>
 
mysql -u [user] -h 127.0.0.1 -p
 
mysql -u [user] -h 127.0.0.1 -p
</nowiki></code>
+
</nowiki></pre>
  
 
This will work only for the user you have just "granted", not for root. Counter-intuitively, the 'default' server and localhost/127.0.0.1 aren't the same thing
 
This will work only for the user you have just "granted", not for root. Counter-intuitively, the 'default' server and localhost/127.0.0.1 aren't the same thing
第73行: 第73行:
 
CLASSPATH=$CLASSPATH:/usr/share/java/mysql.jar
 
CLASSPATH=$CLASSPATH:/usr/share/java/mysql.jar
 
export CLASSPATH
 
export CLASSPATH
</nowiki></code>
+
</nowiki></pre>
  
 
Alternatively, you can set it for all users, by editing /etc/environment (use sudo - sudo vi /etc/environment)
 
Alternatively, you can set it for all users, by editing /etc/environment (use sudo - sudo vi /etc/environment)
第79行: 第79行:
 
<pre><nowiki>
 
<pre><nowiki>
 
CLASSPATH=".:/usr/share/java/mysql.jar"
 
CLASSPATH=".:/usr/share/java/mysql.jar"
</nowiki></code>
+
</nowiki></pre>
  
 
Log out and Log in again. Start up a terminal and type
 
Log out and Log in again. Start up a terminal and type
第85行: 第85行:
 
<pre><nowiki>
 
<pre><nowiki>
 
echo $CLASSPATH
 
echo $CLASSPATH
</nowiki></code>
+
</nowiki></pre>
  
 
It should print out something like ":/usr/share/java/mysql.jar"
 
It should print out something like ":/usr/share/java/mysql.jar"
第128行: 第128行:
 
     }
 
     }
 
}
 
}
</nowiki></code>
+
</nowiki></pre>
  
 
[[category:UbuntuHelp]]
 
[[category:UbuntuHelp]]

2007年5月13日 (日) 12:35的版本


For Ubuntu versions : 5.10, 6.06, 6.10, 7.04

Introduction

This document explains how to set up Java applications to communicate with the MySQL Database. This can be used either in Java development, or applications which use JDBC such as OpenOffice.Org. See Using MySQL, JDBC and OpenOffice for more information.

This document was written originally for 5.10, but has been updated for 6.06. Changes required for 5.10 are shown in italics

It has also been checked against 6.10 (Edgy Eft) and 7.04 (Feisty Fawn), which should be installed as for 6.06

Installation

Install mysql client, server and the jdbc connector, either via synaptic or by using the following

sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install libmysql-java

On 5.10 you may need select "No configuration" for postfix if it is installed.

Set up MySQL default password

Set up the password for the root user as 'root' or whatever you want. The last entry is the password

mysqladmin -u root password root

Check you can connect to mysql

mysql -u root -p

then enter the password you just set and press return again. In this case it would be "root".

Create SQL Databases and tables

Create databases and tables or whatever, so you have some data to work with. You can disconnect and use mysql-query-browser for this if you wish. For the sample code below just enter

create database emotherearth;

User creation and privileges

Create a user with access to that table. Replace the items in square brackets by the database name, and the chosen user and password. Don't type in the square brackets !

grant all privileges on [database].* to [user]@localhost identified by "[password]";
flush privileges;

Note: Ubuntu 5.10 requires localhost.localdomain

This is required because when you connect using "mysql -u root -p" it connects directly to the Sql Server. The "grant" line creates access via 127.0.0.1 (localhost). This is no longer an issue on 6.10.

You can test this by

mysql -u [user] -h 127.0.0.1 -p

This will work only for the user you have just "granted", not for root. Counter-intuitively, the 'default' server and localhost/127.0.0.1 aren't the same thing

Setting up the user to use JDBC

Add these two lines to /home/[user]/.bashrc. I am running Java 5 which doesn't require the current directory to be on the Classpath ; I *think* Java 2 does, but I'm not going back to check it In that case you may need to have $CLASSPATH:.:/user/share/java/mysql.jar

CLASSPATH=$CLASSPATH:/usr/share/java/mysql.jar
export CLASSPATH

Alternatively, you can set it for all users, by editing /etc/environment (use sudo - sudo vi /etc/environment)

CLASSPATH=".:/usr/share/java/mysql.jar"

Log out and Log in again. Start up a terminal and type

echo $CLASSPATH

It should print out something like ":/usr/share/java/mysql.jar"

Testing in Java

It should now work. Here is some typical code (clearing up removed for simplicity)

import java.sql.*;
import java.util.Properties;

public class DBDemo
{
  // The JDBC Connector Class.
  private static final String dbClassName = "com.mysql.jdbc.Driver";

  // Connection string. emotherearth is the database the program
  // is connecting to. You can include user and password after this
  // by adding (say) ?user=paulr&password=paulr. Not recommended!

  private static final String CONNECTION =
                          "jdbc:mysql://127.0.0.1/emotherearth";

  public static void main(String[] args) throws
                             ClassNotFoundException,SQLException
  {
    System.out.println(dbClassName);
    // Class.forName(xxx) loads the jdbc classes and
    // creates a drivermanager class factory
    Class.forName(dbClassName);

    // Properties for user and password. Here the user and password are both 'paulr'
    Properties p = new Properties();
    p.put("user","paulr");
    p.put("password","paulr");

    // Now try to connect
    Connection c = DriverManager.getConnection(CONNECTION,p);

    System.out.println("It works !");
    c.close();
    }
}