https://downloads.mariadb.org/mariadb/10.5.9
MariaDB 10.5.9 Stable - MariaDB
downloads.mariadb.org
[ 필수 라이브러리 및 도구 설치 ]
# yum install gcc gcc-c++ libtermcap-devel gdbm-devel zlib* libxml* freetype* libpng* libjpeg* iconv flex gmp ncurses-devel libaio perl -y
cmake는 3.7.2버전 이상 설치 (하지만 3.20 버전 설치 시 오류 있었음)
1) cmake source install
# wget https://cmake.org/files/v3.7/cmake-3.7.2.tar.Z
# mv cmake-3.7.2.tar.Z cmake-3.7.2.tar.gz
# tar zxvf cmake-3.7.2.tar.gz
# cd cmake-3.7.2
# ./bootstrap --prefix=/usr/bin/cmake
# make -j 8 && make install
2) 명령어 설정
# vi /etc/profile
여기에 없으면 PATH가 없으면
# vi /root/.bash_profile
PATH=$PATH:$HOME/bin:/usr/local/apache/bin:/usr/bin/cmake/bin: //추가
source vi /root/.bash_profile
3) 설치 확인
# cmake --version
[MariaDB 계정 및 그룹 생성]
(범용성을 위해 MySQL 계정,그룹으로 생성해준다.)
groupadd -g 400 mysql
useradd -u400 -g400 -d /usr/local/mysql -s /bin/false mysql
# cd /usr/local/src
# wget -O mariadb-10.5.9.tar.gz https://downloads.mariadb.org/interstitial/mariadb-10.5.9/source/mariadb-10.5.9.tar.gz/from/https%3A//archive.mariadb.org/
# tar xvfz mariadb-10.5.9.tar.gz
# cd mariadb-10.5.9
# mkdir /usr/local/src/mariadb-10.5.9/build
# cd /usr/local/src/mariadb-10.5.9/build
# cmake ../ \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/tmp/socket/mysql.socket \
-DINSTALL_SYSCONFDIR=/etc \
-DINSTALL_SYSCONF2DIR=/etc/my.cnf.d \
-DMYSQL_TCP_PORT=3306 \
-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_ARIA_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_FEDERATEDX_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DWITH_XTRADB_STORAGE_ENGINE=1 \
-DWITH_ZLIB=system \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_READLINE=1
# make -j 8 && make install
<메모리 부족 오류>
c++: internal compiler error: Killed (program cc1plus)
c++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugzilla.redhat.com/bugzilla> for instructions.
make[2]: *** [storage/rocksdb/CMakeFiles/rocksdblib.dir/rocksdb/db/column_family.cc.o] Error 4
make[1]: *** [storage/rocksdb/CMakeFiles/rocksdblib.dir/all] Error 2
make: *** [all] Error 2
위와 같은 오류 발생 시 메모리 부족이 원인으로
메모리를 늘리는게 좋지만 불가능하다면
/swap 메모리 확인하고 용량을 늘려준다
# free -m // 메모리, /swap 확인
# fallocate -l 1024M /swapfile
# sudo dd if=/dev/zero of=/swapfile count=1024 bs=1MiB
//요거 안해주면 CentOS 7.0에서 swapon: /myswap: swapon failed: Invalid argument 에러를 접하게 된다.
# chmod 0600 /swapfile
# mkswap /swapfile
# swapon /swapfile
# free -m
재부팅시에도 적용되도록 설정
# vi /etc/fstab
/swapfile swap swap defaults 0 0
# swapon -a
참고
https://arima18.tistory.com/6?category=713413
소스컴파일 설치 후 설정
MariaDB 초기 데이터 생성 및 권한 설정
\cp -arpf /usr/local/src/mariadb-10.5.9/build/scripts/mysql_install_db /usr/local/mysql/scripts/mysql_install_db
cd /usr/local/mysql
rm -rf /usr/local/mysql/data
perl /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
mkdir -p /usr/local/mysql/lnnoDB/redoLogs
mkdir -p /usr/local/mysql/lnnoDB/undoLogs
chown -R mysql /usr/local/mysql/data
chgrp -R mysql /usr/local/mysql
mkdir /usr/local/mysql/logs
mkdir /usr/local/mysql/tmp
chown mysql:mysql /usr/local/mysql/tmp
chown mysql:mysql /usr/local/mysql/logs
chown -R mysql:mysql /usr/local/mysql/data
MariaDB 서비스데몬생성 및 추가 설정
\cp -arpf /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod 750 /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
echo “/usr/local/mysql/lib” > /etc/ld.so.conf.d/mysql.conf
cd /usr/local/mysql/
ln -s lib lib64
cd /usr/local/mysql/support-files/
\mv -f /etc/my.cnf /etc/my.cnf.ori
MariaDB 설정파일 생성
vi /etc/my.cnf
==============================================
[client]
#password = your_password
port = 3306
socket = /usr/local/mysql/tmp/socket/mysql.socket
[mysqld]
bind-address=0.0.0.0
port = 3306
socket = /usr/local/mysql/tmp/socket/mysql.socket
skip-external-locking
key_buffer_size = 384M
max_allowed_packet = 1M
table_open_cache = 512
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size = 32M
thread_concurrency = 8
log-bin=mysql-bin
server-id = 1
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
==============================================
MariaDB 세부권한설정
chown mysql:mysql -R /usr/local/mysql
chmod 711 /usr/local/mysql
chmod 700 /usr/local/mysql/data
chmod 751 /usr/local/mysql/bin
chmod 750 /usr/local/mysql/bin/*
chmod 755 /usr/local/mysql/bin/mysql
chmod 755 /usr/local/mysql/bin/mysqldump
chmod 700 /usr/local/src/mariadb-10.5.6/build/support-files/mysql.server
chmod 700 /usr/local/mysql/support-files/mysql.server
chmod 750 /etc/init.d/mysqld
MariaDB 환경변수경로 설정
vi /etc/profile
==============================================
PATH=$PATH:$HOME/bin:/usr/local/apache/bin:/usr/bin/cmake/bin:/usr/local/mysql/bin:
:wq
==============================================
source /etc/profile
MariaDB 초기 비밀번호 설정은 없다.
MariaDB 시작 확인
/etc/init.d/mysqld start
netstat -ntlp 로 확인
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 7388/mysqld
/etc/init.d/mysqld stop
chkconfig --add mysqld
systemctl enable mysqld
systemctl start mysqld
systemctl status mysqld
● mysqld.service – LSB: start and stop MariaDB
Loaded: loaded (/etc/rc.d/init.d/mysqld; bad; vendor preset: disabled)
Active: active (running) since
Docs: man:systemd-sysv-generator(8)
Process: 21375 ExecStop=/etc/rc.d/init.d/mysqld stop (code=exited, status=0/SUCCESS)
Process: 21556 ExecStart=/etc/rc.d/init.d/mysqld start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/mysqld.service
├─21611 /bin/sh /usr/local/mysql/bin/mysqld_safe –datadir=/usr/local/mysql/data –pi…
└─21742 /usr/local/mysql/bin/mysqld –basedir=/usr/local/mysql –datadir=/usr/local/m…
MariaDB root 비밀번호 변경 (MariaDB 서버안에서 변경)
mysql -u root
myslq>use mysql;
myslq>set password=password(‘password’); 또는 alter user ‘root’@’localhost’ identified by ‘password’;
myslq>select user,host,password from mysql.user;
mysql>flush privileges;
mysql>quit
mysql -u root -p
MariaDB 보안설정(MariaDB 서버밖에서 비밀번호설정)
cd /usr/local/mysql/bin/
./mysql_secure_installation
하시면 몇가지 물음이 나옵니다.
Change the root password? [Y/n] Y (root 패스워드 변경)
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
… Success!
Remove anonymous users? [Y/n] Y (root를 제외한 일반계정 삭제)
… Success!
Disallow root login remotely? [Y/n] Y (root계정을 원격접속X 이게 보통 보안에 좋다)
… Success!
Remove test database and access to it? [Y/n] Y (testDB들 삭제)
– Dropping test database…
… Success!
– Removing privileges on test database…
… Success!
Reload privilege tables now? [Y/n] Y (이것을 Yes로 해야 로그인이 된다. 변경한내용들이 적용)
… Success!
Cleaning up…
'리눅스' 카테고리의 다른 글
Apache 리다이렉트 (HTTP→HTTPS) (0) | 2021.03.19 |
---|---|
APM + XE 설치 (0) | 2021.03.10 |
APM 소스컴파일 설치(1) - Apache (0) | 2021.03.05 |
[리눅스] CentOS7 계정 생성 / 삭제 (0) | 2020.09.25 |
[리눅스] 가상화 프로그램과 Linux 설치하기 (0) | 2020.09.19 |