OS | DB |
---|---|
Rocky9 | MySQL 8.4.4 |
dnf -y install https://dev.mysql.com/get/mysql84-community-release-el9-1.noarch.rpm
repo 링크 : https://dev.mysql.com/downloads/repo/yum/
-OS에 맞춰 다운로드 진행해주면 됨
-노란색 친곳을 해당위치입력에 넣으면 됨 >> https://~~/get/(해당위치입력))-
dnf --show duplicates list (mysql-community-server)
플러그인 설치
dnf install dnf-plugins-core
dnf -y install mysql-community-server-8.4.4
mysql --version & mysql -V
- mysql user 로그인이 안 되는 이유
mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/false // bin/false : 사용자가 시스템에 로그인할 수 없도록 막는 셸
systemctl start mysqld
systemctl status mysqld // active 확인
MySQL 서버를 설치하고 초기화할 때,
데이터베이스와 사용자 계정 설정
-데이터 디렉토리와 시스템 테이블을 준비해야 함
sudo -u mysql mysqld --default-file=/etc/my.cnf
mysqld --initialize :
mysqld --initialize-insecure :
sudo systemctl status mysqld
< 정리 >
[root@localhost ~]# mysqld --default-file=/etc/my.cnf
2025-02-15T09:41:12.584937Z 0 [System] [MY-015015] [Server] MySQL Server - start.
2025-02-15T09:41:13.300331Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.4.4) starting as process 49205
2025-02-15T09:41:13.319473Z 0 [ERROR] [MY-010123] [Server] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!
2025-02-15T09:41:13.319740Z 0 [ERROR] [MY-010119] [Server] Aborting
2025-02-15T09:41:13.338341Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.4.4) MySQL Community Server - GPL.
2025-02-15T09:41:13.338355Z 0 [System] [MY-015016] [Server] MySQL Server - end.
[root@localhost ~]# sudo systemctl start mysqld
// user를 mysql로 접속해야 되기 때문에 아래와 같이 진행
[root@localhost ~]# sudo -u mysql mysqld --default-file=/etc/my.cnf
// 비밀번호를 가진 관리자 계정을 생성 (비번은 에러 로그 파일로 기록)
[root@localhost ~]# mysqld --initialize : admin1
// 비밀번호가 없는 관리자 계정을 생성
[root@localhost ~]# mysqld --initialize-insecure : admin2
// 상태 확인
[root@localhost ~]# systemctl status mysqld
systemctl enable mysqld
systemctl status mysqld //active 확인
sudo grep 'temporary password' /var/log/mysqld.log
초기비밀번호로 접속 안 됨 (안전모드 접근도 안 되는 상황)
비밀번호 없이 접속할 수 있도록 진행
1) 시스템 중지
systemctl stop mysqld
2) 설정파일 수정 > 추가
vi /etc/my.cnf
[mysqld]
skip-grant-tables
3) 시스템 시작
systemctl start mysqld
4) 비밀번호 없이 접속 가능
mysql -u root
Flush privileges;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Mysqlserver123!';
Flush privileges;
exit;
5) 설정파일 수정 > 제거
vi /etc/my.cnf // skip-grant-tables 제거
6) 시스템 재부팅
systemctl restart mysql
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Mysqlserver123!';
pwd : Mysqlserver123!