๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Linux

ubuntu์— MySql ์†Œ์Šค ์„ค์น˜

ubuntu-20.04์— MySql๋ฅผ ์†Œ์Šค ์„ค์น˜ํ•ด๋ณด์ž.

ubuntu APM ์†Œ์Šค ์„ค์น˜

์ด ํฌ์ŠคํŠธ๋Š” ubuntu-20.04์— APM(Apache, PHP, MySql)์„ ์†Œ์Šค ์„ค์น˜ํ•˜๋Š” ๊ณผ์ •์ด๋ฉฐ, ์•„๋ž˜์˜ ์„ธ ๊ฐ€์ง€ ์ˆœ์„œ์˜ ํฌ์ŠคํŒ…์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

[Linux] ubuntu์— Apache ์†Œ์Šค ์„ค์น˜

[Linux] ubuntu์— MySql ์†Œ์Šค ์„ค์น˜

[Linux] ubuntu์— php ์†Œ์Šค ์„ค์น˜

์ž‘์—… ํ™˜๊ฒฝ

macOS์—์„œ virtualBox๋กœ ๊ฐ€์ƒ๋จธ์‹  ubunto๋ฅผ ๋งŒ๋“ค๊ณ  ๊ทธ ์•ˆ์— ์†Œ์Šค ์„ค์น˜๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค.

macOS : Big Sur 11.4

VirtualBox : 6.1.16

ubuntu : 20.04.2.0-desktop

๊ถŒํ•œ ๋ถ€์—ฌ & ์„ค์น˜ ๊ฒฝ๋กœ

์„ค์น˜์— ํ•„์š”ํ•œ ๊ถŒํ•œ์„ ๋ถ€์—ฌ๋ฐ›๊ธฐ ์œ„ํ•ด ๋‹ค์Œ์˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ํŒจ์Šค์›Œ๋“œ๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.

$ sudo su

์ปดํŒŒ์ผ ์„ค์น˜๋Š” ๊ด€๋ก€์ƒ /usr/local์— ์„ค์น˜ํ•˜๋ฏ€๋กœ ํ•ด๋‹น ๊ฒฝ๋กœ๋กœ ์ด๋™ํ•œ๋‹ค.

$ cd /usr/local

๊ด€๋ จ ํŒจํ‚ค์ง€ ์„ค์น˜ ๋ฐ apr, apr-util ์„ค์น˜

๊ด€๋ จ ํŒจํ‚ค์ง€

$ apt-get update

$ apt-get install vim cmake gcc g++ libncurses5-dev libxml2-dev openssl libssl-dev curl libcurl4-openssl-dev libjpeg-dev libpng-dev libfreetype6-dev libsasl2-dev autoconf libncurses5-dev

์ปดํŒŒ์ผ์— ํ•„์š”ํ•œ ๊ด€๋ จ ํŒจํ‚ค์ง€๋“ค์„ ์„ค์น˜ํ•ด์ค€๋‹ค.

๋ช…๋ น์–ด

  • cd : ์œ„์น˜ ์ด๋™ ๋ช…๋ น์–ด
  • cp : ๋ณต์‚ฌ ๋ช…๋ น์–ด
  • wget : ์ง€์ •ํ•œ ์ฃผ์†Œ๋กœ ๋ถ€ํ„ฐ ํŒŒ์ผ์„ ๋‹ค์šด๋ฐ›๋Š” ๋ช…๋ น์–ด
  • tar xvfz : tar.gz ํ˜•์‹์˜ ์••์ถ•์„ ํ’€์–ด์ฃผ๋Š” ๋ช…๋ น์–ด
  • make : ์†Œ์Šค๋ฅผ ์ปดํŒŒ์ผํ•ด์ฃผ๋Š” ๋ช…๋ น์–ด
  • make install : make๋ฅผ ํ†ตํ•ด ๋งŒ๋“ค์–ด์ง„ ์„ค์น˜ ํŒŒ์ผ์„ ์„ค์น˜ํ•ด์ฃผ๋Š” ๋ช…๋ น์–ด

make -> make install ์˜ ์ˆœ์„œ๋กœ ์†Œ์Šค๋กœ ๋œ ํ”„๋กœ๊ทธ๋žจ ์„ค์น˜ ์ง„ํ–‰

Command 'make' not found

make์™€ ๊ด€๋ จ๋œ ์„ค์น˜๋ฅผ ํ•˜์ง€์•Š๋Š”๋‹ค๋ฉด Command 'make' not found ๋ผ๋Š” ๋ฉ”์„ธ์ง€๊ฐ€ ๋‚˜์˜ค๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์Œ์˜ ๋‘ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.

$ apt install make

MySql ๊ณ„์ • ๋งŒ๋“ค๊ธฐ

groupadd mysql

useradd -g mysql -s /bin/bash -m mysql

MySql ๋‹ค์šด๋กœ๋“œ & ์ปดํŒŒ์ผ ์„ค์น˜

$ wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20.tar.gz

$ tar xvf mysql-5.7.20.tar.gz

$ cd mysql-5.7.20

$ sudo cmake \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_DATADIR=/usr/local/mysql/data \

-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \

-DSYSCONFDIR=/etc \

-DMYSQL_TCP_PORT=3306 \

-DMYSQL_USER=mysql \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DWITH_EXTRA_CHARSETS=all \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/mysql/boost

cmake๋ฅผ ํ†ตํ•ด ๋นŒ๋“œ๋ฅผ ํ•˜๋ฉฐ, cmake๋Š” ์•ž์„œ ๊ด€๋ จ ํŒจํ‚ค์ง€์—์„œ ์„ค์น˜ํ–ˆ์—ˆ๋‹ค.

$ make

$ make install

make ์ž…๋ ฅ ํ›„์—” ์ƒ๋‹นํžˆ ๊ธด ์‹œ๊ฐ„์ด ์†Œ๋ชจ๋˜๊ณ , ์œ„์™€ ๊ฐ™์ด ์™„๋ฃŒ๋œ๋‹ค.

make install์„ ์ž…๋ ฅํ•˜๋ฉด ์œ„์™€ ๊ฐ™์ด ์„ค์น˜๊ฐ€ ์™„๋ฃŒ๋œ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ดˆ๊ธฐํ™” & ๊ถŒํ•œ ์ˆ˜์ •

$ cd /usr/local/mysql

$ echo "./bin/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data -v"

$ ./bin/mysql_install_db --no-defaults --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql -v

์œ„์˜ ๋ช…๋ น์–ด๋“ค์„ ์ž…๋ ฅํ•ด ์ฃผ๋ฉด [NOTE]๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ฉ”์‹œ์ง€๋“ค๊ณผ ํ•จ๊ป˜ ์ดˆ๊ธฐํ™”๊ฐ€ ์™„๋ฃŒ๋œ๋‹ค.

$ chown -R mysql:mysql /usr/local/mysql

๊ถŒํ•œ์„ ์ˆ˜์ •ํ•ด ์ค€๋‹ค.

ํ™˜๊ฒฝ ์„ค์ •

$ vim /usr/local/mysql/my.cnf

vi๋ณด๋‹ค vim์ด ํŽธํ•˜๊ธฐ ๋•Œ๋ฌธ์— vim์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ์„ ์—ด์–ด์ฃผ์—ˆ๋‹ค.

ํ•ด๋‹น ํŒŒ์ผ์„ ๋‹ค์Œ์˜ ๋‚ด์šฉ์„ ์ž…๋ ฅ ํ›„ ์ €์žฅํ•ด ์ค€๋‹ค.

[mysqld]
# port=3306
# basedir=/usr/local/mysql
# datadir=/usr/local/mysql/data
# pid-file=/usr/local/mysql/mysqld.pid
# log_error=/usr/local/mysql/mysql_error.log
# lc-messages-dir=/usr/local/mysql/share

init_connect=SET collation_connection = utf8_general_ci
init_connect=SET NAMES utf8
character-set-server=utf8
collation-server=utf8_general_ci
# table_cache=1024
max_connections=2048
max_user_connections=500
max_connect_errors=10000
wait_timeout=300
query_cache_type = 1
query_cache_size = 128M
query_cache_limit = 5M
slow_query_log
long_query_time=3
max_allowed_packet=16M
sort_buffer_size = 2M
# skip-innodb
skip-name-resolve
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

[mysql]
default-character-set=utf8

[client]
default-character-set=utf8

$ cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

์„œ๋น„์Šค mysqld ํŒŒ์ผ์„ ๋ณต์‚ฌํ•ด ์ค€๋‹ค.

$ vim /etc/init.d/mysqld

mysqld๋ฅผ ์—ด์–ด์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์ €์žฅํ•ด ์ค€๋‹ค.

basedir=/usr/local/mysql
datadir=/usr/local/mysql/data

mysqld ์„œ๋น„์Šค ๋“ฑ๋ก ๋ฐ ์‹คํ–‰

$ update-rc.d mysqld defaults

$ service mysqld start

$ service mysqld status

$ sudo service mysqld stop


service mysqld status์„ ์‹คํ–‰ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด mysqld์˜ ์ƒํƒœ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์•”ํ˜ธ ์ดˆ๊ธฐํ™”

$ ./bin/mysqld_safe --skip-grant-tables &

์œ„ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅ ํ›„

./bin/mysql -u root -p

์œ„ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด Enter password: ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜์˜ค๊ณ  ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋“ฑ๋กํ•ด ์ฃผ๋ฉด mySql์ด ์—ด๋ฆฐ๋‹ค.