MySQL 5.1 na Windows XP

Pro své webové aplikace většinou používám jako databázi MySQL - jen pro testovací účely a vývoj, jinak se v administraci databáze nějak extra nevyznám.

I když jsem databázi MySQL u sebe instalovala už minimálně 5x, tentokrát se mi to prostě pomocí Windows instalátoru nepodařilo ani na třetí pokus - pořád stejná chyba při pokusu konfiguračního průvodce o spuštění MySQL jako služby Windows: "Could not start the service MySQL. Error:0"

Po přečtení pár příspěvků na internetu, kdo to, jak řešil a důkladném pročtení manuálu a posledním pokusu o úspěšnou instalaci, jsem se rozhodla vyzkoušet binární (neinstalační) verzi, tu je ale potřeba ručně nakonfigurovat, ... vzhledem k tomu, že se mi to podařilo podle MySQL manuálu úplně bez problémů, tady je postup (možností je samozřejmě více). Píšu postup hlavně pro sebe, abych ho nezapomněla, ale třeba se bude hodit i někomu dalšímu.

1.
Stáhnout verzi mysql 5.1.x pro Windows "Without installer"

2.
Rozbalit archiv do D:\bin-programs\mysql-5.1.x

3.
Vytvořit adresář D:\app_data\mysql\data (pro ukládání dat)

4.
Vytvořit adresář D:\app-data\mysql\data-innodb (pro ukládání INNODB tabulek)

5.
Vytvořit soubor C:\my.ini (až na malé úpravy je obsah zkopírovaný z šablony my-medium.ini, která je součástí distribuce) - je potřeba sem zanést především nastavené cesty v bodech 2 až 4.

Celý vypadá takto:


[client]
password = admin
port = 3306
socket = MySQL
[mysqld]
basedir="D:/bin-programs/mysql-5.1.56/"
datadir="D:/app_data/mysql/data/"
default-character-set=utf8
default-storage-engine=INNODB
port = 3306
socket = MySQL
skip-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
log-bin=mysql-bin
binlog_format=mixed
server-id = 1
innodb_data_home_dir = D:\\app_data\\mysql\\data-innodb\\
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = D:\\app_data\\mysql\\log-innodb\\
innodb_buffer_pool_size = 16M
innodb_additional_mem_pool_size = 2M
innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout


6) Zkopírovat adresář data z originální distribuce mysql do D:/app_data/mysql/data

7) Vyzkoušet, zda je to v pořádku: spustit příkazovou řádku, přejít do adresáře D:\bin-programs\mysql-5.1.x\bin a spustit mysqld --console - výstup by měl vypadat nějak takto:


110423 22:27:23 [Warning] '--default-character-set' is deprecated and will be re
moved in a future release. Please use '--character-set-server' instead.
110423 22:27:23 [Warning] '--skip-locking' is deprecated and will be removed in
a future release. Please use '--skip-external-locking' instead.
110423 22:27:24 [Note] Plugin 'FEDERATED' is disabled.
110423 22:27:24 InnoDB: Initializing buffer pool, size = 16.0M
110423 22:27:24 InnoDB: Completed initialization of buffer pool
InnoDB: The first specified data file D:\app_data\mysql\data-innodb\ibdata1 did
not exist:
InnoDB: a new database to be created!
110423 22:27:24 InnoDB: Setting file D:\app_data\mysql\data-innodb\ibdata1 size
to 10 MB
InnoDB: Database physically writes the file full: wait...
110423 22:27:25 InnoDB: Log file D:\app_data\mysql\log-innodb\ib_logfile0 did n
ot exist: new to be created
InnoDB: Setting log file D:\app_data\mysql\log-innodb\ib_logfile0 size to 5 MB
InnoDB: Database physically writes the file full: wait...
110423 22:27:26 InnoDB: Log file D:\app_data\mysql\log-innodb\ib_logfile1 did n
ot exist: new to be created
InnoDB: Setting log file D:\app_data\mysql\log-innodb\ib_logfile1 size to 5 MB
InnoDB: Database physically writes the file full: wait...
InnoDB: Doublewrite buffer not found: creating new
InnoDB: Doublewrite buffer created
InnoDB: Creating foreign key constraint system tables
InnoDB: Foreign key constraint system tables created
110423 22:27:27 InnoDB: Started; log sequence number 0 0
110423 22:27:27 [Note] Event Scheduler: Loaded 0 events
110423 22:27:27 [Note] mysqld: ready for connections.
Version: '5.1.56-community-log' socket: '' port: 3306 MySQL Community Server
(GPL)


8) Zastavit příkazem mysqladmin -u root -p shutdown (po výzvě k zadání hesla, ponechat heslo prázdné).

9) Znovu spustit mysqld --console

10) Spustit mysql -u root -p (prázdné heslo)

11) Nastavit heslo pro administrátora:
Update mysql.user set Password=PASSWORD('admin') WHERE User='root';


12) Vytvořit startovací a ukončovací skript:

startup.bat
D:\bin-programs\mysql-5.1.56\bin\mysqld --console


shutdown.bat
D:\bin-programs\mysql-5.1.56\bin\mysqladmin -u root -p shutdown

Comments

Popular posts from this blog

Hibernate delete and update queries with joins

Access application Google Drive account from javascript without client side authorization dialog

MyBatis calling Oracle stored procedures