개요
이전 글에서는 Windows 시스템에서의 MySQL 5.7 설치 및 구성에 대해 다루었습니다. 빅데이터 환경의 설치 및 배포가 필요하기 때문에 이제 CentOS 7 시스템에서도 MySQL 5.7을 설치 및 구성해야 합니다. CentOS 7 환경도 기록되어 있으므로 설치 및 구성은 여기에서 직접 수행됩니다.
yum 소스에서 MySQL 5.7을 설치하세요
MySQL 5.7
설치
CentOS 7 시스템에서는 시스템의 기본 소스 파일에 MySQL이 포함되어 있지 않습니다. yum 소스를 사용하여 설치 명령을 실행하면 "사용 가능한 패키지 mysql-community-server가 없습니다."라는 메시지가 표시됩니다.
따라서 소스 파일 설치 파일을 다운로드하려면 다음 명령을 수동으로 실행해야 합니다.
1 # cd /home 2 # wget 'https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm'
그런 다음 소스 파일 설치 명령을 실행합니다.
1 # rpm -ivh mysql57-community-release-el7-11.noarch.rpm
이제 MySQL을 설치할 수 있으며 다음 명령을 실행합니다.
1 # yum install -y mysql-community-server
다운로드 및 설치가 완료될 때까지 잠시 기다립니다.
다음 명령을 실행하여 데이터베이스를 시작하고 데이터베이스 상태를 확인합니다.
1 # systemctl start mysqld 2 # systemctl status mysqld
MySQL 5.7 구성
이 버전의 데이터베이스는 다음과 같습니다. /var/log/mysqld에 설치됨 .log 파일에서 임의의 루트 사용자 비밀번호를 생성합니다. 파일을 보고 비밀번호를 얻습니다.
1 # cat /var/log/mysqld.log
또는 다음 명령을 사용합니다.
1 # grep 'temporary password' /var/log/mysqld.log
MySQL 데이터베이스에 로그인하려면 다음 명령을 사용하세요.
1 # mysql -uroot -p
비밀번호 방금 찾은 비밀번호를 입력하여 데이터베이스에 로그인하세요.
루트 사용자 비밀번호를 변경하려면 다음 명령을 사용하세요.
1 > SET PASSWORD = PASSWORD('Password@123!');
데이터베이스는 기본적으로 원격 액세스를 위해 열려 있지 않습니다. 다음 명령을 사용하여 구성합니다:
1 > GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Password@123!' WITH GRANT OPTION;
그런 다음 quit를 입력하고 Enter를 눌러 데이터베이스에서 로그아웃한 후 다음 명령을 사용하여 데이터베이스 구성 파일을 엽니다.
데이터베이스 문자 집합을 utf8mb4로 설정하고 sql_mode를 설정하여 문별 그룹을 지원하도록 합니다. 전체 구성 파일 내용은 다음과 같습니다.
1 # vim /etc/my.cnf
여기서는 utf8mb4로 설정되어 있습니다. 첫째, utf8 인코딩은 3바이트 데이터만 지원하고 모바일 단말기의 이모티콘 데이터는 4바이트 문자이므로 utf-8 인코딩 데이터베이스에 이모티콘 데이터를 직접 삽입하면 예외가 보고됩니다. 둘째, MySQL의 utf8이 실제 utf8이 아니므로 utf8mb4가 사용된다는 마스터의 기사를 읽었습니다.
구성이 완료되면 다음 명령을 실행하여 데이터베이스 서비스를 다시 시작합니다.
1 [mysqld] 2 datadir=/var/lib/mysql 3 socket=/var/lib/mysql/mysql.sock 4 symbolic-links=0 5 log-error=/var/log/mysqld.log 6 pid-file=/var/run/mysqld/mysqld.pid 7 character-set-server = utf8mb4 8 collation-server = utf8mb4_unicode_ci 9 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 10 11 [mysql] 12 default-character-set = utf8mb4 13 14 [client] 15 default-character-set = utf8mb4 16
1 # systemctl restart mysqld
다음 명령을 실행하여 데이터베이스 서비스가 시작되도록 설정합니다.
1 # SHOW VARIABLES LIKE 'character%';
서버가 인터넷에 연결되지 않으면 yum 소스를 사용하여 설치할 수 없습니다. 인터넷 접속 시, 공식 홈페이지로 이동하여 설치용 압축 패키지를 다운로드한 후, 서버를 변경하여 압축 패키지를 설치하세요.
먼저 공식 웹사이트 https://www.mysql.com/로 이동하여 관련 설치 패키지를 다운로드하세요:
mysql57을 생성하려면 서버의 /usr 디렉터리에 원격으로 연결하세요:
1 # systemctl enable mysqld
mariadb는 CentOS 7 시스템에 기본적으로 설치되어 있으므로 다음 명령을 사용하여 mariadb를 보고 제거합니다.
1 # cd /usr 2 # mkdir mysql57
1 # rpm -qa | grep mariadb 2 # rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
다음 명령을 사용하여 MySQL 서비스를 시작하고 서비스 실행 상태를 확인하세요.
1 # rpm -ivh *.rpm
MySQL 5.7 데이터베이스 설치가 완료되었습니다. MySQL 5.7 구성
로그 파일을 보고 비밀번호를 알아보세요:
1 # grep 'temporary password' /var/log/mysqld.log
使用如下命令登录MySQL数据库:
1 # mysql -uroot -p
密码输入刚才查到的密码,即可登录数据库:
使用如下命令,修改root用户密码:
1 > SET PASSWORD = PASSWORD('******');
数据库默认远程访问未开放,使用如下命令进行配置:
1 > GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '******' WITH GRANT OPTION;
星号为root用户的密码(下图红色覆盖区域):
然后输入quit,回车退出数据库登录,使用命令打开数据库的配置文件:
1 # vim /etc/my.cnf
设置数据库字符集为utf8mb4,并设置sql_mode支持group by语句,完整的配置文件内容如下:
1 [mysqld] 2 character-set-server = utf8mb4 3 collation-server = utf8mb4_unicode_ci 4 sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 5 6 [mysql] 7 default-character-set = utf8mb4 8 9 [client] 10 default-character-set = utf8mb4 11
注意:
此处设置为utf8mb4:一是因为utf8编码只支持3字节的数据,而移动端的表情数据是4个字节的字符,所以直接往utf-8编码的数据库中插入表情数据,会报异常;二是看过一位大神的文章提到,MySQL中的utf8并不是真正的utf8,所以使用utf8mb4。
配置完成后,执行如下命令重启数据库服务:
1 # systemctl restart mysqld
使用修改后的密码,登录数据库,执行如下命令查看字符集设置:
1 # SHOW VARIABLES LIKE 'character%';
执行如下命令,设置数据库服务开机启动:
1 # systemctl enable mysqld
为了方便查看不同安装方式的朋友,将记录了两种不同的安装方式的配置都记录下来,避免他们需要回头去查找配置信息。
위 내용은 CentOS 7에서 MySQL 5.7을 설치하고 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!