일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 제이쿼리
- csv파일
- @ResponseBody
- ubunt mysql8
- context-quartz.xml
- spring
- mysql8버전 설치 #mysql8 tar설치
- map리턴
- JSONView
- Simple Json
- json 접근
- 파일 쓰기
- 카프카 #Kafka
- vo리턴
- kibana
- 파일 읽기
- 스케줄 2번실행
- Ajax
- 가상머신
- 원하는 Mysql 버전 설치
- jQeury
- server.xml
- major version 61
- json
- csv
- 엘라스틱서치
- 스케줄 중복실행
- Gradle
- ElasticSearch
- map return
- Today
- Total
streetprogrammer
ubuntu에서 MYSQL8.0 버전 설치(이중설치-CMAKE) 본문

[1] MYSQL user 생성
$ groupadd mysql
$ useradd -r -g mysql -s /bin/false mysql
[2] 관련 패키지 설치
$ apt-get update
$ apt-get install cmake
$ apt-get install libssl-dev
$ apt-get install libboost-all-dev
$ apt-get install libncurses5-dev libncursesw5-dev
+ boost 라이브러리 설치
$ cd /usr/local/src/
$ sudo wget https://boostorg.jfrog.io/artifactory/main/release/1.73.0/source/boost_1_73_0.tar.gz
$ sudo tar xvfz boost_1_73_0.tar.gz
[3] MYSQL 파일 다운로드
$ cd /usr/local
$ wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.25.tar.gz
$ tar xvfz mysql-8.0.25.tar.gz
[4] CMAKE
$ cd /usr/local/mysql-8.0.25
$ rm -f CMakeCache.txt
$ mkdir build (원하는 이름으로)
$ cd dir_mysql
$ cmake .. \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql8 \
-DMYSQL_DATADIR=/usr/local/mysql8/data \
-DMYSQL_UNIX_ADDR=/usr/local/mysql8/tmp/mysql.sock \
-DSYSCONFDIR=/usr/local/mysql8/etc \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/mysql/boost_1_73_0
-DMYSQL_TCP_PORT=3307 \
-DMYSQL_USER=mysql \
-DMYSQL_GROUP=mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
$ make
$ make test
$ make install
-DWITH_BOOST : boost 가 설치되어있는 경로 작성 *mysql과 버전을 안 맞춘 경우 에러발생
-DCMAKE_INSTALL_PREFIX : my.cnf파일의 base역할인거 같음
-DMYSQL_DATADIR : DB초기화 진행시 해당위치에 파일이 셋팅됨 *다른버전의 파일이 셋팅될경우 에러발생
-DSYSCONFDIR : my.cnf파일 위치로 생각하면됨 *mysqld 실행시 default옵션으로 위치잡는데 왜 필요한지는 모르겠음
-DMYSQL_UNIX_ADDR : 소켓위치 *파일이 실행되면 해당 위치에 소켓이 생성되는거같음
[4] my.cnf 작성
[client]
port = 3307
socket=/usr/local/mysql8/tmp/mysql.sock
[mysqld]
default_time_zone = '+09:00'
port=3307
socket=/usr/local/mysql8/tmp/mysql.sock
basedir=/usr/local/mysql8
datadir=/usr/local/mysql8/data
user=mysql
character-set-client-handshake=FALSE
init_connect=SET collation_connection=utf8mb4_0900_ai_ci
init_connect=SET NAMES utf8mb4
character-set-server=utf8mb4
collation-server=utf8mb4_0900_ai_ci
lower_case_table_names=1
[mysqld_safe]
log-error=/usr/local/mysql8/log/mysql_log.err
pid-file=/usr/local/mysql8/mysql.pid
lower_case_table_names=1 : 대소문자 구분 안함 , 0일경우 구분함 (default 0)
[5] 권한 수정
make install 혹은 필요한 폴더를 만든 경우 해당 파일의 권한을 모두 mysql로 설정 해줘야함
chmod 755 -R /usr/local/mysql8
chown -R mysql:mysql /usr/local/mysql8
[6] 기본 DB 생성 (초기화)
$ /usr/local/mysql8/bin/mysqld \
--defaults-file=/usr/local/mysql8/etc/my.cnf \
--initialize \
--user=mysql \
--basedir=/usr/local/mysql8 \
--datadir=/usr/local/mysql8/data
*defaults-file 옵션은 맨 앞에 작성
* 초기화를 다시 하고싶은경우 datadir삭제 후 진행 해야됨 (여기서 다른 버전 파일이 셋팅될경우 에러발생 : Upgrade ...)
* 초기화 된 경우 임시 비밀번호가 발급됨
[7] 데몬서버 실행
$ /usr/local/mysql8/bin/mysqld_safe \
--defaults-file=/usr/local/mysql8/etc/my.cnf \
--user=mysql &
$ ps -ef | grep mysqld
* 데몬실행 으로 mysqld_safe 를 통해 순차적으로 실행됨
[8] 서버 접속
bin/mysql -u root -p
* 비밀번호는 아까 받음 임시 비밀번호 사용
[9] root비밀번호 변경
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '*******';
[10] DB생성
CREATE DATABASE lanes_of_load default CHARACTER SET UTF8;
[11] 권한 부여
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
mysql> create user 'test'@'%' identified by '*****';
Query OK, 0 rows affected (0.05 sec)
Database changed
mysql> select host, user from user;
+-----------+------------------+
| host | user |
+-----------+------------------+
| % | test |
| localhost | mysql.infoschema |
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
+-----------+------------------+
5 rows in set (0.00 sec)
mysql> create user 'root'@'%' identified by '*****';
Query OK, 0 rows affected (0.05 sec)
mysql> grant all privileges on *.* to 'test'@'%';
Query OK, 0 rows affected (0.07 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> grant all privileges on *.* to 'root'@'%';
Query OK, 0 rows affected (0.04 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
mysql> select host, user from user;
+-----------+------------------+
| host | user |
+-----------+------------------+
| % | test |
| % | root |
| localhost | mysql.infoschema |
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
+-----------+------------------+
6 rows in set (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
Query OK, 0 rows affected (0.08 sec)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'test'@'%' WITH GRANT OPTION;
Query OK, 0 rows affected (0.12 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.03 sec)
참고 사이트
http://jongguheo.blogspot.com/2021/01/mysql-8021-centos-7.html
https://velog.io/@yeonii/LinuxUbuntu20.04-Mysql8.0.25-%EC%88%98%EB%8F%99%EC%84%A4%EC%B9%98
진행사항에 맞는걸 해야지 다른방법으로 때려맞추다가 망할수있음
cnf에 옵션을 잘못넣으면 해당 옵션관련 오류가 뜸 -> 해당 옵션을 이용 못하기 때문에 지워주면됨
본인이 설정한 옵션 이외에 다른 옵션이야기 하면 cnf 설정을 잡못잡아주고있는거 --default-file에 제대로된 위치 잡아야됨 생성되는 log파일 위치로 확인 가능
'DATABASE' 카테고리의 다른 글
마리아DB 바이너리 설치 (1) | 2022.12.19 |
---|---|
CentOS에서 원하는 MYSQL 버전 설치 (0) | 2022.10.27 |