使用工具及镜像:
虚拟机:VMware16
openeuler镜像:openEuler-22.03-LTS-x86_64
mysql版本:mysql-5.7.40-1.el7.x86_64.rpm-bundle
一、系统安装(多图)
选择合适的Linux版本
根据需要设置处理和内存
网络连接设置
如果设置与主机同一个网段就设置桥接,其他模式也可以满足使用
选择镜像
下载OpenEuler镜像,这里测试用的是openEuler-22.03-LTS-x86_64,下载地址:https://repo.openeuler.org/openEuler-22.03-LTS/ISO/x86_64/openEuler-22.03-LTS-x86_64-dvd.iso
进入安装步骤
选择第一个Install openEuler 22.0.-LTS进入安装界面
安装信息介绍
① 可设置分区,我选择的是自动分区(点击进去后完成即可),也可以根据自己需要手动分区;
② 软件选择,根据需要选择预按照文件,一般为了服务器纯净选择最小安装;
③ 网络和主机名可以通过命令进行设置,这里暂不设置,如果准备好了点击启用即可;
④ 设置ROOT密码,对密码强度有要求,需包含三种符合(注意设置完记录一下);
⑤ 根据需要创建其他用户和密码;
⑥ 开始安装
配置系统静态IP
# cd /etc/sysconfig/network-scripts/# vi ifcfg-ens33TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=static#dchp修改为staticDEFROUTE=yesIPV4_FAILURE_FATAL=noIPV6INIT=yesIPV6_AUTOCONF=yesIPV6_DEFROUTE=yesIPV6_FAILURE_FATAL=noIPV6_ADDR_GEN_MODE=stable-privacyNAME=ens33UUID=61edc1b6-af48-4d50-9886-c49d9af5bd7fDEVICE=ens33ONBOOT=yesIPADDR=192.168.1.111#设置为自己的IPPREFIX=24GATEWAY=192.168.1.1#设置为自己的网关NETMASSK=255.255.255.0#子网掩码DNS1=192.168.1.1#DNS1
重启网络
# systemctl restart NetworkManager
安装常用的命令
# yum -y install tar# yum -y install vim
二、下载及安装MySQL数据库(采用tar包安装)
下载MySQL数据库
https://downloads.mysql.com/archives/community/
将下载好的RPM Bundle包上传至服务器
执行命令查看服务器是否有mysql项
# yum repolist all | grep mysql
开始解压上传的安装包
# tar -xvf mysql-5.7.40-1.el7.x86_64.rpm-bundle.tar -C /mysql/mysql
解压结果如下:
使用rpm包分别安装common , libs, client, server服务,如下:
注意安装顺序
# cd /mysql/mysql[root@localhost mysql]# rpm -ivh mysql-community-common-5.7.40-1.el7.x86_64.rpm --nodeps --force警告:mysql-community-common-5.7.40-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEYVerifying...################################# [100%]准备中...################################# [100%]正在升级/安装... 1:mysql-community-common-5.7.40-1.e################################# [100%][root@localhost mysql]# rpm -ivh mysql-community-libs-5.7.40-1.el7.x86_64.rpm --nodeps --force警告:mysql-community-libs-5.7.40-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEYVerifying...################################# [100%]准备中...################################# [100%]正在升级/安装... 1:mysql-community-libs-5.7.40-1.el7################################# [100%][root@localhost mysql]# rpm -ivh mysql-community-client-5.7.40-1.el7.x86_64.rpm --nodeps --force警告:mysql-community-client-5.7.40-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEYVerifying...################################# [100%]准备中...################################# [100%]正在升级/安装... 1:mysql-community-client-5.7.40-1.e################################# [100%][root@localhost mysql]# rpm -ivh mysql-community-server-5.7.40-1.el7.x86_64.rpm --nodeps --force警告:mysql-community-server-5.7.40-1.el7.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 3a79bd29: NOKEYVerifying...################################# [100%]准备中...################################# [100%]正在升级/安装... 1:mysql-community-server-5.7.40-1.e################################# [100%]/usr/lib/tmpfiles.d/mysql.conf:23: Line references path below legacy directory /var/run/, updating /var/run/mysqld → /run/mysqld; please update the tmpfiles.d/ drop-in file accordingly.
再执行 rpm -qa | grep mysql 命令查看安装情况:
初始化数据库
# mysqld --initialize --console;获取初始化的密码# cat /var/log/mysqld.log | grep password;
① 查看mysql服务是否真的启动了,可以执行 systemctl status mysqld, 也可以ps命令查询mysql进程
一般第一次是没有启动成功
② 启动查看看错误
# systemctl start mysqld
这里可以三种方式排查错误信息
systemctl status mysqld查看错误信息
journalctl -xe
cat /var/log/mysqld.log (在mysql配置文件 /etc/my.cnf中配置)
③ 无法启动的原因一般是由于mysql的目录权限问题
# chown -R mysql:mysql /var/lib/mysql如果不行再暴力授权到777# chmod 777 /usr/sbin/mysqld# chmod 777 /var/lib/mysql/*
④ 重新启动mysql服务
# systemctl start mysqld# systemctl status mysqld
登录mysql错误
mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file
联网直接执行
# yum install libncurses* -y离线处理方式# # cp /lib64/libncurses.so.6 /lib64/libncurses.so.5或者 添加软连接# ln -s /lib64/libncurses.so.6 /lib64/libncurses.so.5
登录后必须修改密码:
ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘123456’;
防止在远程不能登陆:alter user root identified with mysql_native_password by ‘123456’;(执行这个再继续可能避免出现退出后不能再登录的问题,下面ERROR 1045 (28000))
设置远程登录
mysql> use mysql;mysql> update user set host='%' where user='root';mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;mysql> FLUSH PRIVILEGES;mysql> quit;
解决mysql:ERROR 1045 错误
ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: NO/YES)
# vim /etc/my.cnf在[mysqld]下添加skip-grant-tables,保存即可。重启mysql服务# systemctl stop mysqld# systemctl start mysqld
重新登录mysql
# mysql -u root -p直接回车不需要输入密码(出现Enter Password 也一样直接回车,即可登陆成功)mysql> USE mysql;mysql> update user set authentication_string=password('123456') where user='root';mysql> flush privileges;mysql> quit;然后删除/etc/my.cnf文件中添加的skip-grant-tables,重启mysql服务
三、开放端口号:
查看已经开放的端口
firewall-cmd --list-ports 或 firewall-cmd --query-port=3306/tcp
开启端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
重启防火墙使开放的端口生效:
systemctl restart firewalld.service
四、修改mysql数据库data目录
创建新的data文件夹
# mkdir /mysql/data/
停止mysql服务
# service mysqld stop
复制data文件
# cp -rf /var/lib/mysql /mysql/data/
编辑my.cnf文件
# vim /etc/my.cnf
更改文件权限
# chown -R mysql:mysql /mysql/data
修改mysql配置文件
修改MySQL启动脚本/etc/init.d/mysqld,执行”vim /etc/init.d/mysqld “(如果没有此文件,就不需要修改,这里就没有该文件)
7. 解决权限、路径、配置文件都修改后,仍然无法启动数据库
cat /var/log/mysqld.log出现以下内容:
Can’t create test file /mysql/data/mysql/localhost.lower-test
# vim /etc/selinux/config修改SELINUX=disabled,然后重启服务器# reboot再重启mysql服务即正常。# service mysqld restart
五、设置MySQL数据库服务自启动
# service mysqld status
通过启动状态,查看mysql.service脚本路径
将安装目录下的 support-files 目录下mysql.server复制到/etc/rc.d/init.d/mysql
# cp /usr/lib/systemd/system/mysqld.service /etc/init.d/mysql
复制后赋予权限
# chmod +x /etc/init.d/mysql
修改脚本,使系统能正常识别
# vim /etc/init.d/mysql添加下面三行(shell脚本需要保证第一行是#!/bin/bash,否则文件将不能被识别)#!/bin/bash#chkconfig: 2345 81 96#description: StartMySQL
添加到服务列表
# chkconfig --add mysql
查看服务列表,服务是否添加成功
# chkconfig --list
注意看到mysql后面的345都是开或者是on表示成功, 如果显示关或者 off 则需要手动开启,执行以下命令
# chkconfig --level 345 mysqld on
执行reboot重启测试