TIP-WINDOWS

Win10 Mysql v8.0.19 실행형으로 설치하기

무한열정 2020. 4. 20. 10:42

Mysql v8.0.19 설치파일을 통해 설치하는것이 아니라

zip파일을 다운로드 받아 압축해제후 간단한 설정을 통해

실행형으로 설치하는 방법이다.


다음 사이트에서 Community를 다운로드 받는다.

https://dev.mysql.com/downloads/mysql/


다음과 같이 특정 폴더에 압축을 해제한다.

구동이 편하도록 startup.bat 및 stop.bat파일을 만들었다.

startup.bat

cd bin

mysqld.exe --console


stop.bat

cd bin

mysqladmin -u root shutdown


Mysql v5.6.X에서 my.ini 파일을 가져와서 약간 수정하였다.

특히 사용 포트는 기존 3306을 사용중이라

v8.0.19에서는 3386을 사용하였다.

구동시 v8.0.19에서 인식 못하는 속성도 삭제 하였다.

다음은 현재 v8.0.19에서 적용한 속성이다. 필요시 최적화가 더 필요할수 있을듯 하다.

# Example MySQL config file for large systems.

#

# This is for a large system with memory = 512M where the system runs mainly

# MySQL.

#

# MySQL programs look for option files in a set of

# locations which depend on the deployment platform.

# You can copy this option file to one of those

# locations. For information about these locations, see:

# http://dev.mysql.com/doc/mysql/en/option-files.html

#

# In this file, you can use all long options that a program supports.

# If you want to know which options a program supports, run the program

# with the "--help" option.


# The following options will be passed to all MySQL clients

[client]

#password = your_password

port = 3386

socket = /tmp/mysql.sock

default-character-set=utf8


# Here follows entries for some specific programs


# The MySQL server

[mysqld]

port = 3386

socket = /tmp/mysql.sock

skip-external-locking

key_buffer_size = 256M

max_allowed_packet = 1M

table_open_cache = 256

sort_buffer_size = 1M

read_buffer_size = 1M

read_rnd_buffer_size = 4M

myisam_sort_buffer_size = 64M

thread_cache_size = 8

# Try number of CPU's*2 for thread_concurrency

#default-character-set = utf8

character-set-server = utf8

collation-server = utf8_general_ci


# Don't listen on a TCP/IP port at all. This can be a security enhancement,

# if all processes that need to connect to mysqld run on the same host.

# All interaction with mysqld must be made via Unix sockets or named pipes.

# Note that using this option without enabling named pipes on Windows

# (via the "enable-named-pipe" option) will render mysqld useless!

#skip-networking


# Replication Master Server (default)

# binary logging is required for replication

log-bin=mysql-bin


# binary logging format - mixed recommended

binlog_format=mixed


# required unique id between 1 and 2^32 - 1

# defaults to 1 if master-host is not set

# but will not function as a master if omitted

server-id = 1


# Replication Slave (comment out master section to use this)

#

# To configure this host as a replication slave, you can choose between

# two methods :

#

# 1) Use the CHANGE MASTER TO command (fully described in our manual) -

#    the syntax is:

#

#    CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>,

#    MASTER_USER=<user>, MASTER_PASSWORD=<password> ;

#

#    where you replace <host>, <user>, <password> by quoted strings and

#    <port> by the master's port number (3306 by default).

#

#    Example:

#

#    CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306,

#    MASTER_USER='joe', MASTER_PASSWORD='secret';

#

# OR

#

# 2) Set the variables below. However, in case you choose this method, then

#    start replication for the first time (even unsuccessfully, for example

#    if you mistyped the password in master-password and the slave fails to

#    connect), the slave will create a master.info file, and any later

#    change in this file to the variables' values below will be ignored and

#    overridden by the content of the master.info file, unless you shutdown

#    the slave server, delete master.info and restart the slaver server.

#    For that reason, you may want to leave the lines below untouched

#    (commented) and instead use CHANGE MASTER TO (see above)

#

# required unique id between 2 and 2^32 - 1

# (and different from the master)

# defaults to 2 if master-host is set

# but will not function as a slave if omitted

#server-id       = 2

#

# The replication master for this slave - required

#master-host     =   <hostname>

#

# The username the slave will use for authentication when connecting

# to the master - required

#master-user     =   <username>

#

# The password the slave will authenticate with when connecting to

# the master - required

#master-password =   <password>

#

# The port the master is listening on.

# optional - defaults to 3306

#master-port     =  <port>

#

# binary logging - not required for slaves, but recommended

#log-bin=mysql-bin


# Uncomment the following if you are using InnoDB tables

#innodb_data_home_dir = C:\\mysql\\data\\

#innodb_data_file_path = ibdata1:10M:autoextend

#innodb_log_group_home_dir = C:\\mysql\\data\\

# You can set .._buffer_pool_size up to 50 - 80 %

# of RAM but beware of setting memory usage too high

#innodb_buffer_pool_size = 256M

#innodb_additional_mem_pool_size = 20M

# Set .._log_file_size to 25 % of buffer pool size

#innodb_log_file_size = 64M

#innodb_log_buffer_size = 8M

#innodb_flush_log_at_trx_commit = 1

#innodb_lock_wait_timeout = 50


[mysqldump]

quick

max_allowed_packet = 16M

default-character-set=utf8


[mysql]

no-auto-rehash

# Remove the next comment character if you are not familiar with SQL

#safe-updates

default-character-set=utf8


[myisamchk]

key_buffer_size = 128M

sort_buffer_size = 128M

read_buffer = 2M

write_buffer = 2M


[mysqlhotcopy]

interactive-timeout


\bin 폴더로 이동하여 다음 명령을 실행한다.

mysqld --initialize --console



성공시 root 계정의 임시 password가 생성되어 알려주므로 

반드시 메모하였다가 추후 변경한다.


성공시 다음과 같이 스키마 파일들이 생성된다.

만약 실패했다면 \data 폴더내 모든 파일을 

완전히 삭제후 재시도 해야 한다.

다음 명령어로 mysql v8.0.19를 구동 시킨다.

mysqld --console


다음과 같이 메시지가 출력되면 성공한 것이다.


DBeaver Community 클라이언트 툴에서 접속을 테스트해본다.

참고로 DBeaver는 다수의 많은 종유의 DB와 연결이 가능하므로 편리하다.


* DBeaver Community 다운로드

https://dbeaver.io/download/


반드시 Server Time Zone을 설정하여야 한다.


다음은 접속 설공시 DBeaver Client Tool에서의

Database Navigator 화면이다.


* JDBC URL에 다음 문자열이 추가되어야 할수도 있다.

?serverTimezone=UTC

<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">

  <property name="driverClassName" value="com.mysql.jdbc.Driver"/>

  <property name="url" value="jdbc:mysql://127.0.0.1:3386/mydb?serverTimezone=UTC" />

  <property name="username" value="admin"/>

  <property name="password" value="mysqlpassword"/>

</bean>


* Mysql v8.0.19 root 패스워드는 다음과 같이 변경할수 있다.


* Mysql 접속하기

mysql -u root -p


* Mysql root 패스워드 변경하기

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'egov2020';