JDBCAndMySQL
From ArchWiki
Contents |
[edit] Introduction
This document describes how to set up your Arch system so MySQL Databases can be accessed via Java programs.
[edit] Installation
[edit] Installing MySQL
To start with, switch to the system user, then install MySQL.
su (enter your system password) pacman -S mysql
There are now two "fixes" you have to make. Firstly edit the file my.conf to allow network access
gedit /etc/my.cnf
Find the line with skip_networking in and comment it out so it looks like this
#skip-networking
Close that file, and edit the /etc/hosts.allow file
gedit /etc/hosts.allow
and enter on a blank line
mysqld : ALL : ACCEPT
Finally start mysql up with :
/etc/rc.d/mysqld start
[edit] Installing JDBC
JDBC is not currently in the repositories. I downloaded the current version, at the time of writing 5.06 from the MySQL website at http://www.mysql.com/products/connector-j/
Next, unpack it into a temporary directory
cd /tmp tar xzvf /aux/arch/extras/mysql-connector-java-5.0.6.tar.gz (the exact filename will depend on where you download it to)
Finally, copy it into the java extensions directory
cp mysql-connector-java-5.0.6-bin.jar /opt/java/jre/lib/ext/
[edit] Testing
To access mysql's command line tool,
mysql
[edit] Creating the test database
The following commands create a database and allow a user 'paulr'. You will need to change the user name to whatever yours is.
create database emotherearth; grant all privileges on emotherearth.* to paulr@localhost identified by "paulr"; flush privileges;
Now press Ctrl+D to exit the command line tool.
[edit] Creating the test program
Use an editor to create a file DBDemo.java with the following code in it. You will need to change the username and password appropriately.
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();
}
}
[edit] Running the Program
To compile and run the program enter
javac DBDemo.java java DBDemo
and hopefully, it should print out
This is the database connection com.mysql.jdbc.Driver It works !