Centos7 安装mysql-8.0.13(rpm)
说明
1.yum安装方式下载太慢,而且卸载重装会再次下载,费时;故推荐rpm安装。
2.系统版本:centos7.9
关闭SELinux(重要,阿里云等服务器默认关闭,建议先检查)
vi /etc/selinux/config
将SELINUX=enforcing改为SELINUX=disabled
设置后需要重启才能生效,reboot命令。
卸载mariadb(centos7自带)
rpm -qa | grep mariadb #查找已经安装mariadb
rpm -e mariadb-libs-5.5.56-2.el7.x86_64 --nodeps #参数名称必须和上面查出的名称一致
获取安装包
可以本地上传,也可以用国内镜像下载(此处给出网易和清华镜像),比mysql官网快很多。不同版本需修改地址中文件名称。
mysql8
wget http://mirrors.163.com/mysql/Downloads/MySQL-8.0/mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar
wget https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-8.0/mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar
mysql5.7
wget http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar
wget https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.7/mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar
解压安装包(上面直接下载mysql合集,也可以按需分别下载每个rpm包)
tar -xvf mysql-8.0.19-1.el7.x86_64.rpm-bundle.tar
安装rpm包(common、libs、client、server为必须)
rpm -ivh mysql-community-client-8.0.19-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-common-8.0.19-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-devel-8.0.19-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-embedded-compat-8.0.19-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-8.0.19-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-compat-8.0.19-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-server-8.0.19-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-test-8.0.19-1.el7.x86_64.rpm --nodeps --force
卸载rpm包(如果重新安装可参考)
rpm -e mysql-community-embedded-compat-8.0.19-1.el7.x86_64 --nodeps
rpm -e mysql-community-test-8.0.19-1.el7.x86_64 --nodeps
rpm -e mysql-community-client-8.0.19-1.el7.x86_64 --nodeps
rpm -e mysql-community-devel-8.0.19-1.el7.x86_64 --nodeps
rpm -e mysql-community-libs-8.0.19-1.el7.x86_64 --nodeps
rpm -e mysql-community-server-8.0.19-1.el7.x86_64 --nodeps
rpm -e mysql-community-common-8.0.19-1.el7.x86_64 --nodeps
rpm -e mysql-community-libs-compat-8.0.19-1.el7.x86_64 --nodeps
初始化数据库
mysqld --initialize --console --lower-case-table-names=1
特别注意:lower-case-table-names默认是0,此时activiti的表名称全部是大写,会导致数据库存在两张表act_evt_log和ACT_EVT_LOG,程序报错。
详细解释:https://www.cnblogs.com/mydriverc/p/8296647.html
目录授权,否则启动失败
chown -R mysql:mysql /var/lib/mysql/
修改/etc/my.cnf中lower-case-table-names配置(可选)
1.如果初始化数据的时候没有指定lower-case-table-names参数的值,即默认0;则不需要此配置。
2.如果初始化指定了参数,但是my.cnf中没有配置,则启动失败。查看/var/log/mysqld.log会发现此参数初始化值和配置值不同导致。
Different lower_case_table_names settings for server ('0') and data dictionary ('1').
[mysqld]
lower-case-table-names=1
启动服务
启动服务
systemctl start mysqld
查看状态,启动失败查看原因
systemctl status mysqld
开机自启动mysql
systemctl enable mysqld
systemctl daemon-reload
如果mysql服务可以正常启动,恭喜你,mysql安装完成。
查看root临时密码
grep 'temporary password' /var/log/mysqld.log
[Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 3yMoxa?*nMrl
自动成临时密码:【3yMoxa?*nMrl】
登录mysql(回车后输入上面的临时密码即可登录mysql)
温馨tip:可以将上面查询的密码复制出来,执行命令后复制到剪切板,然后点击鼠标右键直接粘贴,避免输入错误。
mysql -uroot -p
或者
mysql_secure_installation
修改root密码
mysql8
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
flush privileges;
mysql5.7
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';
flush privileges;
注意:mysql8新的密码策略,很多mysql客户端工具不支持,所以用原来的密码策略。切记!
添加远程登录用户(例如:develop)
create user 'develop'@'%' identified with mysql_native_password by '你的密码';
grant all privileges on *.* to 'develop'@'%' with grant option;
flush privileges;
说明:创建一个develop用户,可以在任何客户端登录(root只能在本机),拥有所有数据库权限(并且可以授给其他mysql用户)。
添加项目用户(例如:crm,数据库crm,用户名crm)
create database crm; #创建crm数据库
CREATE USER 'crm'@'%' IDENTIFIED WITH mysql_native_password BY 'crm2018' PASSWORD EXPIRE NEVER;#创建用户并且密码永不过期
GRANT ALL PRIVILEGES ON crm.* TO 'crm'@'%' with grant option; #授权数据库所有操作给用户
FLUSH PRIVILEGES;
my.cnf参考
[client]
port=3417
[mysqld]
default-authentication-plugin=mysql_native_password
port=3417
max_connections=1000
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
lower-case-table-names=1
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
关闭防火墙
注意:远程访问mysql,关闭防火墙配置,否则无法访问哟。
systemctl stop firewalld.service
systemctl disable firewalld.service
yum安装方式
yum list installed | grep mysql #查看已安装的mysql
yum -y remove mysql-libs.x86_64 #卸载已经安装
rpm -Uvh https://repo.mysql.com/mysql80-community-release-el7-1.noarch.rpm #安装mysql源
yum --enablerepo=mysql80-community install -y mysql-community-server
yum install -y mysql-community-client
安装完成后,初始化等操作和rpm类似。
彻底卸载mysql
rpm -qa|grep mariadb
rpm -qa|grep mysql
find / -name mysql
rm -rf /var/lib/mysql
查看log文件位置
cat /etc/my.cnf
log-error=/var/log/mysqld.log
其他参考资料:
https://blog.csdn.net/weixin_42266606/article/details/80879571
https://www.cnblogs.com/kevingrace/p/10482469.html