Try these settings to improve performance when running a Sql file created from MysqlDump
(
echo "SET AUTOCOMMIT=0;"
echo "SET UNIQUE_CHECKS=0;"
echo "SET FOREIGN_KEY_CHECKS=0;"
cat mydumpfile.sql
echo "SET FOREIGN_KEY_CHECKS=1;"
echo "UNIQUE_CHECKS=1;"
echo "COMMIT;"
) | mysql -u username -p mydatabase
Tips and scripts relating to database administration. Mainly SQL Server but some MySQL and every now and again something different. Posts are brief and to the point.It's as much a place to make notes for my own use as anything else.
Monday, 29 October 2007
Friday, 26 October 2007
All locations nearby
-- all the points neraby
DECLARE @lat float, @lon float, @earthradius float
,@Xaxis float, @Yaxis float, @Zaxis float
-- this is the start point
SET @lat = 52.280709
SET @lon = -1.623253
-- calculate
SET @earthradius = 3963.1676 -- miles
set @Xaxis = cos(radians(@lat)) * cos(radians(@lon))
set @Yaxis = cos(radians(@lat)) * sin(radians(@lon))
set @Zaxis = sin(radians(@lat))
SELECT TOP 200
Postcode
,@earthradius *
acos( (cos(radians(Latitude)) * cos(radians(Longitude)))*@Xaxis
+ (cos(radians(Latitude)) * sin(radians(Longitude)))*@Yaxis
+ (sin(radians(Latitude)))*@Zaxis) distance
FROM
paf.dbo.ukpostcodepointsY07Q3
WHERE
@earthradius *
acos( (cos(radians(Latitude)) * cos(radians(Longitude)))*@Xaxis
+ (cos(radians(Latitude)) * sin(radians(Longitude)))*@Yaxis
+ (sin(radians(Latitude)))*@Zaxis)
< 2 -- miles
ORDER BY
distance asc
DECLARE @lat float, @lon float, @earthradius float
,@Xaxis float, @Yaxis float, @Zaxis float
-- this is the start point
SET @lat = 52.280709
SET @lon = -1.623253
-- calculate
SET @earthradius = 3963.1676 -- miles
set @Xaxis = cos(radians(@lat)) * cos(radians(@lon))
set @Yaxis = cos(radians(@lat)) * sin(radians(@lon))
set @Zaxis = sin(radians(@lat))
SELECT TOP 200
Postcode
,@earthradius *
acos( (cos(radians(Latitude)) * cos(radians(Longitude)))*@Xaxis
+ (cos(radians(Latitude)) * sin(radians(Longitude)))*@Yaxis
+ (sin(radians(Latitude)))*@Zaxis) distance
FROM
paf.dbo.ukpostcodepointsY07Q3
WHERE
@earthradius *
acos( (cos(radians(Latitude)) * cos(radians(Longitude)))*@Xaxis
+ (cos(radians(Latitude)) * sin(radians(Longitude)))*@Yaxis
+ (sin(radians(Latitude)))*@Zaxis)
< 2 -- miles
ORDER BY
distance asc
Tuesday, 23 October 2007
Resetting Mysql root password on Windows
To reset password for root, detail steps are as below:
The procedure under Windows:
Log on to the Windows system where MySQL is running as Administrator.
Stop the MySQL server if it is running. For a server that is running as a Windows service, go to the Services manager:Start Menu -> Control Panel -> Administrative Tools -> ServicesThen find the MySQL service in the list, and stop it.If your server is not running as a service, you may need to use the Task Manager to force it to stop.
Create a text file and place the following command within it on a single line:SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(’MyNewPassword’);Save the file with any name. For this example the file will be C:\mysql-init.txt.
Open a console window to get to the DOS command prompt:Start Menu -> Run -> cmd
If MySQL is installed in C:\mysql. If MySQL is installed in another location, adjust the following commands accordingly.At the DOS command prompt, execute this command:C:\> C:\mysql\bin\mysqld-nt––init-file=C:\mysql-init.txtThe contents of the file named by the –init-file option are executed at server startup, changing the root password. After the server has started successfully, you should delete C:\mysql-init.txt.If you installed MySQL using the MySQL Installation Wizard, you may need to specify a –defaults-file option:C:\> “C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt.exe”
–defaults-file=”C:\Program Files\MySQL\MySQL Server 5.0\my.ini”
–init-file=C:\mysql-init.txt
The appropriate –defaults-file setting can be found using the Services Manager:
Start Menu -> Control Panel -> Administrative Tools -> Services
Find the MySQL service in the list, right-click on it, and choose the Properties option. The Path to executable field contains the –defaults-file setting. Be sure to supply the –init-file argument with the full system path to the file, regardless of your current working directory
Stop the MySQL server, then restart it in normal mode again. If the MySQL server is ran as a service, start it from the Windows Services window. If you start the server manually, use whatever command you normally use.
Connect to MySQL server by using the new password.
The procedure under Windows:
Log on to the Windows system where MySQL is running as Administrator.
Stop the MySQL server if it is running. For a server that is running as a Windows service, go to the Services manager:Start Menu -> Control Panel -> Administrative Tools -> ServicesThen find the MySQL service in the list, and stop it.If your server is not running as a service, you may need to use the Task Manager to force it to stop.
Create a text file and place the following command within it on a single line:SET PASSWORD FOR ‘root’@’localhost’ = PASSWORD(’MyNewPassword’);Save the file with any name. For this example the file will be C:\mysql-init.txt.
Open a console window to get to the DOS command prompt:Start Menu -> Run -> cmd
If MySQL is installed in C:\mysql. If MySQL is installed in another location, adjust the following commands accordingly.At the DOS command prompt, execute this command:C:\> C:\mysql\bin\mysqld-nt––init-file=C:\mysql-init.txtThe contents of the file named by the –init-file option are executed at server startup, changing the root password. After the server has started successfully, you should delete C:\mysql-init.txt.If you installed MySQL using the MySQL Installation Wizard, you may need to specify a –defaults-file option:C:\> “C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt.exe”
–defaults-file=”C:\Program Files\MySQL\MySQL Server 5.0\my.ini”
–init-file=C:\mysql-init.txt
The appropriate –defaults-file setting can be found using the Services Manager:
Start Menu -> Control Panel -> Administrative Tools -> Services
Find the MySQL service in the list, right-click on it, and choose the Properties option. The Path to executable field contains the –defaults-file setting. Be sure to supply the –init-file argument with the full system path to the file, regardless of your current working directory
Stop the MySQL server, then restart it in normal mode again. If the MySQL server is ran as a service, start it from the Windows Services window. If you start the server manually, use whatever command you normally use.
Connect to MySQL server by using the new password.
Tuesday, 16 October 2007
Start of Week
-- function to return the date of Monday in a week
CREATE Function StartOfWeek
(
@date datetime = null
)
RETURNS datetime
AS
BEGIN
DECLARE @Monday datetime
IF @date IS NULL
SET @date = GetDate()
-- round to midnight
SET @date = dateadd(dd,0, datediff(dd,0, @date))
SET @Monday = DateAdd(d, -((@@DATEFIRST + DatePart(dw, @date) -2) % 7), @date)
RETURN @Monday
END
Thursday, 6 September 2007
Java TestMySql
import java.sql.*;
public class TestMysql
{
public static void main(String args[])
{
Connection conn = null;
try {
/* Test loading driver */
String driver = "com.mysql.jdbc.Driver";
System.out.println( "=> loading driver:" );
Class.forName( driver );
System.out.println( "OK" );
/* Test the connection */
String url = "jdbc:mysql://localhost:11819/test";
System.out.println( "=> connecting:" );
conn = DriverManager.getConnection( url, "test", "test" );
System.out.println( "OK" );
printQueryResults(conn, "SELECT VERSION()");
if(conn != null)
conn.close();
}
catch( Exception x ) {
x.printStackTrace();
}
}
public static void printQueryResults(Connection conn, String SQLquery)
throws Exception {
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(SQLquery);
int columns = rs.getMetaData().getColumnCount();
System.out.println("------------------------");
System.out.println();
while (rs.next()) {
for (int i = 1; i <= columns; i++) {
System.out.println(rs.getString(i));
}
System.out.println();
}
rs.close();
stmt.close();
System.out.println("------------------------");
System.out.flush();
Thread.sleep(100); // wait for System.out to finish flush
}
}
Jave Paths
export CLASSPATH=.:/home/phil.lewin/java/packages/mysql-connector-java-5.0.6-bin.jar:
javac TestMysql.java
/usr/java/jdk1.6.0/bin/java TestMysql
javac TestMysql.java
/usr/java/jdk1.6.0/bin/java TestMysql
Monday, 3 September 2007
Friday, 31 August 2007
Rounding datetime to midnight
SQL Server
MySql
select dateadd(dd,0, datediff(dd,0, datetimeval)) as date_at_midnight
MySql
SELECT DATE_FORMAT(now(), '%Y-%m-%d 00:00:00')
To copy files from one Linux server to another
scp *_200704.* root@ipaddress:/var/lib/mysql/dbname/
Changing the Default Collation
Shutdown Microsoft® SQL Server™ 2000, and then run Rebuildm.exe. This is located in the Program Files\Microsoft SQL Server\80\Tools\Binn directory.
In the Browse for Folder dialog box, select the \Data folder on the SQL Server 2000 compact disc or in the shared network directory from which SQL Server 2000 was installed, and then click OK.
Click Settings. In the Collation Settings dialog box, verify or change settings used for the master database and all other databases.
Initially, the default collation settings are shown, but these may not match the collation selected during setup. You can select the same settings used during setup or select new collation settings. When done, click OK.
In the Rebuild Master dialog box, click Rebuild to start the process.
The Rebuild Master utility reinstalls the master database.
we use: Latin1_General_CI_AS
In the Browse for Folder dialog box, select the \Data folder on the SQL Server 2000 compact disc or in the shared network directory from which SQL Server 2000 was installed, and then click OK.
Click Settings. In the Collation Settings dialog box, verify or change settings used for the master database and all other databases.
Initially, the default collation settings are shown, but these may not match the collation selected during setup. You can select the same settings used during setup or select new collation settings. When done, click OK.
In the Rebuild Master dialog box, click Rebuild to start the process.
The Rebuild Master utility reinstalls the master database.
we use: Latin1_General_CI_AS
Passing XML to a Stored Procedure
declare @sXML xml -- for SQL2000 use varchar(2000)
set @sXML = '
'
DECLARE @hDoc int
DECLARE @zip TABLE (PostalCode varchar(15))
exec sp_xml_preparedocument @hDoc OUTPUT, @sXML
INSERT @zip
SELECT PostalCode
FROM OPENXML(@hDoc, 'root/ZipCode')
WITH (PostalCode VARCHAR(20))
EXEC sp_xml_removedocument @hDoc
SELECT * FROM @Zip
set @sXML = '
DECLARE @hDoc int
DECLARE @zip TABLE (PostalCode varchar(15))
exec sp_xml_preparedocument @hDoc OUTPUT, @sXML
INSERT @zip
SELECT PostalCode
FROM OPENXML(@hDoc, 'root/ZipCode')
WITH (PostalCode VARCHAR(20))
EXEC sp_xml_removedocument @hDoc
SELECT * FROM @Zip
SSRS Colours
Yellow:#FFCC33
Grey: #EBEBEB
Blue: #3399CC
=iif(RowNumber(Nothing) Mod 2, "white", "#EBEBEB")
H1: 18pt
H2: 10pt 0.5cm field height
Data: 8pt 0.5cm field height
PORTRAIT:
Margins: 1cm all round
Pagesize: 21cm * 29.7cm
Full width tables start at 0.25 and finish at 18.75
LANDSCAPE:
Margins: 1cm all round
Pagesize: 29.7cm * 21cm
Full width tables start at 0.25 and finish at 27.5
Grey: #EBEBEB
Blue: #3399CC
=iif(RowNumber(Nothing) Mod 2, "white", "#EBEBEB")
H1: 18pt
H2: 10pt 0.5cm field height
Data: 8pt 0.5cm field height
PORTRAIT:
Margins: 1cm all round
Pagesize: 21cm * 29.7cm
Full width tables start at 0.25 and finish at 18.75
LANDSCAPE:
Margins: 1cm all round
Pagesize: 29.7cm * 21cm
Full width tables start at 0.25 and finish at 27.5
Latitude/Longitude from Google Maps
To get the latitude/longitude from google maps:
1. Search for the location. The map will centre on that location.
2. Paste the following text into the address bar:
javascript:void(prompt('',gApplication.getMap().getCenter()));
If you scroll the map then this will show a false location.
To display a latitude/longitude position type them into google maps search box separated by a space.
1. Search for the location. The map will centre on that location.
2. Paste the following text into the address bar:
javascript:void(prompt('',gApplication.getMap().getCenter()));
If you scroll the map then this will show a false location.
To display a latitude/longitude position type them into google maps search box separated by a space.
Subscribe to:
Comments (Atom)