首页 > 数据库 >Linux(Centos7)下rpm方式安装MySQL

Linux(Centos7)下rpm方式安装MySQL

时间:2023-03-07 16:02:49浏览次数:44  
标签:java -- rpm Linux Centos7 mysqld mysql root localhost


1. 卸载已有MySQL

1.1. 查看是否已安装mysql

rpm -qa |grep -i mysql

Linux(Centos7)下rpm方式安装MySQL_mysql
如果系统已安装,请卸载删除。


1.2. 删除MySQL

删除命令:rpm -e --nodeps 包名
rpm -ev mysql-libs-5.1.73-8.el6_8.x86_64
如果提示依赖包错误,则使用以下命令尝试(个人建议):

rpm -ev mysql-libs-5.1.73-8.el6_8.x86_64 --nodeps

Linux(Centos7)下rpm方式安装MySQL_linux_02
如果提示错误:error: %preun(xxxxxx) scriptlet failed, exit status 1
则用以下命令尝试:
rpm -e --noscripts mysql-libs-5.1.73-8.el6_8.x86_64


1.3. 删除残留mysql的文件和库

查找删除残留mysql的文件和库:

find / -name mysql

Linux(Centos7)下rpm方式安装MySQL_mysql_03
删除对应的mysql目录:

rm -rf  /usr/share/mysql
rm –rf  /usr/lib64/mysql
rm -rf  /var/lock/subsys/mysql

1.4. 手工删除/etc/my.cnf

rm -rf /etc/my.cnf

1.5. 再次检查是否已安装mysql,如果有,请重复上面步骤删除之。

find / -name mysql
rpm -qa|grep -i mysql

Linux(Centos7)下rpm方式安装MySQL_mysql_04


2. 安装MySQL5.7

上传以下mysql安装文件:

mysql-community-client-5.7.27-1.el6.x86_64.rpm
mysql-community-server-5.7.27-1.el6.x86_64.rpm
mysql-community-common-5.7.27-1.el6.x86_64.rpm
mysql-community-libs-5.7.27-1.el6.x86_64.rpm


由于存在各种依赖关系,安装顺序为:

1)rpm -ivh mysql-community-common-5.7.27-1.el6.x86_64.rpm
2)rpm -ivh mysql-community-libs-5.7.27-1.el6.x86_64.rpm
3)rpm -ivh mysql-community-client-5.7.27-1.el6.x86_64.rpm
4)rpm -ivh mysql-community-server-5.7.27-1.el6.x86_64.rpm


在安装过程中:

(1)报错1: 安装common、libs时报:mariadb-libs与所安装软件冲突

原因: 由于centos7默认安装mysql分支数据库mariadb,出现冲突。

Linux(Centos7)下rpm方式安装MySQL_其他_05
【解决方法】:卸载mariadb-libs

[root@localhost java]# rpm -qa |grep -i mariadb
mariadb-libs-5.5.65-1.el7.x86_64
[root@localhost java]# 
[root@localhost java]# rpm -ev mariadb-libs-5.5.65-1.el7.x86_64 --nodeps
软件包准备中...
mariadb-libs-1:5.5.65-1.el7.x86_64
[root@localhost java]# 

(2)报错2: 安装server时报:需要安装libnuma.so.1()(64bit)
Linux(Centos7)下rpm方式安装MySQL_其他_06

安装numactl即可:

# yum -y install numactl

(3)报错3: 安装server时报:需要安装libsasl2.so.2()(64bit)

Linux(Centos7)下rpm方式安装MySQL_MySQL_07

注: libsasl2.so.2()(64bit) 的包全名为:cyrus-sasl-lib-2.1.23-15.el6_6.2.x86_64.rpm(这里版本请忽略)

yum方式安装cyrus-sasl-lib,发现其已经安装:

[root@localhost java]# yum install -y cyrus-sasl-lib

Linux(Centos7)下rpm方式安装MySQL_linux_08
【解决方法】:强制安装server(--nodeps --force):

[root@localhost java]# rpm -ivh mysql-community-server-5.7.27-1.el6.x86_64.rpm --nodeps --force

Linux(Centos7)下rpm方式安装MySQL_java_09

安装完成!


3. 启动MySQL
#查看mysql状态
service mysqld status
# 启动mysql
service mysqld start
# 停止mysql
service mysqld stop
# 重启mysql
service mysqld restart

(1)启动MySQL服务:

[root@localhost java]# service mysqld start
Starting mysqld (via systemctl):                           [  确定  ]
[root@localhost java]# 

(2)查看MySQL进程(发现启动成功):

[root@localhost java]# ps -ef | grep mysql
root      47240      1  0 22:18 ?        00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql

mysql     47434  47240  0 22:18 ?        00:00:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock

root      47557  39026  0 22:26 pts/1    00:00:00 grep --color=auto mysql

[root@localhost java]# 

4. 修改MySQL密码

(1)关闭MySQL服务:

[root@localhost java]# service mysqld stop
Stopping mysqld (via systemctl):                           [  确定  ]
[root@localhost java]# 

(2)在配置文件/etc/my.cnf任意行(新一行)中加入指令:skip-grant-tables

[root@localhost java]# vi /etc/my.cnf

注: my.cnf文件目录可通过“find / -name my.cnf”命令查找。


(3)然后启动mysql服务:

[root@localhost java]# service mysqld start
Starting mysqld (via systemctl):                           [  确定  ]
[root@localhost java]# 

(4)登录MySQL,不需要输入密码直接回车即可
Linux(Centos7)下rpm方式安装MySQL_linux_10


(5)修改密码,并刷新权限

update mysql.user set authentication_string=password('1234') where user='root';
flush privileges; 

Linux(Centos7)下rpm方式安装MySQL_java_11


(6)最后,注释掉配置文件/etc/my.cnf中添加的skip-grant-tables

[root@localhost java]# vi /etc/my.cnf

(7)重启mysql服务:

[root@localhost java]# service mysqld restart
Stopping mysqld (via systemctl):                           [  确定  ]
[root@localhost java]# 

(8)登录后正常操作MySQL会报错
Linux(Centos7)下rpm方式安装MySQL_其他_12

【解决方法】(登录mysql后执行):

① MySQL版本5.7以下(不含5.7)版本:

SET PASSWORD = PASSWORD('1234'); 
flush privileges; 

② MySQL版本5.7+(含5.7)版本(常用):

ALTER USER USER() IDENTIFIED BY '1234';
flush privileges; 

(9)如果继续报错:
Linux(Centos7)下rpm方式安装MySQL_其他_13
修改MySQL密码安全策略:

mysql> set global validate_password_policy=LOW;
mysql> set global validate_password_length=4;

再次修改密码(这里使用的mysql5.7,版本5.7以下见上面教程):

ALTER USER USER() IDENTIFIED BY '1234';
flush privileges; 

Linux(Centos7)下rpm方式安装MySQL_linux_14


5. 修改MySQL字符集等配置(初级配置)

(1)编辑配置信息

[root@localhost java]# vi /etc/my.cnf

内容:

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8 
[mysqld]
#设置3306端口
port = 3306 
# 主服务器唯一ID(一般取IP最后一段) 
server-id=1
# 设置mysql的安装目录
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

# 允许最大连接数
max_connections=1000
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

# 分组group_cocat函数最大长度,默认为1024
group_concat_max_len=102400
# 最大数据包大小(通信缓冲区的最大长度)
max_allowed_packet=102400
# 最大允许的数据包大小(执行大数据插入等操作需要配置)
max_allowed_packet=10000M

# 设置时区(Idea连接mysql需要设置)
default-time-zone='+08:00'

# 取消mysql表名大小写限制(0:区分,1:不区分)
lower_case_table_names=1

# 必须的配置(支持group by)
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

# 跳过校验权限(需配置在[mysqld_safe]之前)
# skip-grant-tables

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

针对如上设置的pid-file文件夹路径:建议自行创建,并授权:

# mkdir -p /var/run/mysqld
# chown mysql.mysql /var/run/mysqld/

(2)保存后,重启mysql服务:

[root@localhost java]# service mysqld restart
Restarting mysqld (via systemctl):                         [  确定  ]
[root@localhost java]# 

(3)查看mysql字符集

mysql> show variables like '%char%';

Linux(Centos7)下rpm方式安装MySQL_其他_15


6. 开启远程访问权限

6.1. 开启远程访问权限(需root用户授权

① 执行授权语句,报错:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '1234' WITH GRANT OPTION;
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

修改MySQL密码安全策略:

mysql> set global validate_password_policy=LOW;
mysql> set global validate_password_length=4;

再次执行授权语句:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '1234' WITH GRANT OPTION;

② 刷新权限

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> 

权限变化如下图:
Linux(Centos7)下rpm方式安装MySQL_linux_16

辅助语句(一般不用):
use mysql;
update user set host = ‘%’ where user = ‘root’;
select user,host from mysql.user;


6.2. 开启防火墙端口3306

centos7防火墙相关操作:

启动: systemctl start firewalld
查看状态: systemctl status firewalld
停止: systemctl disable firewalld
禁用: systemctl stop firewalld

(1)开放3306端口

[root@localhost java]# firewall-cmd --zone=public --add-port=3306/tcp --permanent

(2)重新加载防火墙配置

[root@localhost java]# firewall-cmd --reload
success
[root@localhost java]#

(3)查看已开放的端口

[root@localhost java]# firewall-cmd --list-port
3306/tcp
[root@localhost java]# 

【附】其他相关命令:

① 关闭指定端口(如:关闭3306端口)

firewall-cmd --zone=public --remove-port=3306/tcp --permanent

② 查看端口状态(如:查看3306端口)

firewall-cmd --zone=public --query-port=3306/tcp


7. 使用Navicat Premium远程连接MySQL(附:常见报错)

注: 这里使用Navicat Premium软件远程连接测试。

Linux(Centos7)下rpm方式安装MySQL_linux_17

到此,安装完成!!!


附:常见连接报错

(1) 报错一(10060): 防火墙端口未开启
Linux(Centos7)下rpm方式安装MySQL_其他_18


(2)报错二(1045): 远程授权密码与实际连接密码不相符
Linux(Centos7)下rpm方式安装MySQL_mysql_19


标签:java,--,rpm,Linux,Centos7,mysqld,mysql,root,localhost
From: https://blog.51cto.com/ohxiaohu/6103562

相关文章

  • linux基本功系列之mv命令实战
    前言linux常用命令之文件管理命令,目前已经进行到第10个,今天我们一起来看看mv命令。日常工作中,我们把文件移走或者改名都是用的mv命令1、MV命令的介绍mv命令来自于英文单词mo......
  • Linux基础命令使用
    1.CentOS安装和卸载Python3卸载python3rpm-qa|greppython3|xargsrpm-ev--allmatches--nodeps卸载pyhton3whereispython3|xargsrm-frv删除所有残余文件......
  • Linux卸载删除gitlab
    1、停止gitlab服务gitlab-ctlstop2、卸载gitlab(社区版)rpm-egitlab-ce或者 yumremovegitlab-ce3、查看gitlab进程psaux|grepgitlab 4、杀掉gitlab......
  • centos7部署element-plus
    element-plus官网实在是太不稳定了,所以自己搭建了一套在本地,流程如下:环境安装yuminstallnodeyuminstallnpmnodeinstall-gpnpm从gitee拉取代码wget-P/......
  • Rocky Linux 9 安装 Vagrant
    1、VirtualBox依赖安装#安装依赖并重启服务器dnf--enablerepo=epel-yinstallkernel-devel-$(uname-r)kernel-headers-$(uname-r)gccgcc-c++glibcmakebzip2......
  • Linux使用DataX3.0 ~笔记-持续更新中
     一、Liunx上安装DataX查看当前系统版本查看系统的名称,命令:uname查看具体的系统版本,命令:cat/etc/redhat-release查看是否具备jdk和python环境:查看jdk版本,命......
  • Centos7.6下corosync+pacemaker+pcs高可用集群环境安装
    在容灾备份领域,有多种高可用方案,corosync+pacemaker无疑是开源方案中的佼佼者。1.什么是corosync、pacemaker、pcs?Corosync是集群管理套件的一部分,通常会与其他资源管......
  • Linux常用的20个命令(上)
    无论你是后端程序员还是前端程序员,都避免不了和Linux打交道。Linux的命令有很多,这里仅介绍常用的20个,方便快速查看,也欢迎大家作补充。1.mkdir命令makedirectories的缩......
  • Linux安装gitlab(yum方式、rpm方式)
    目录一、概述二、安装0、前置条件1、配置yum源2、更新本地yum缓存3、安装gitlab社区版 4、更改配置文件参数1)更改默认端口2)配置邮箱3)修改root管理员密码4)......
  • Linux下查看某个进程占用的CPU、内存
    1、用top命令指定固定的PIDtop-p10997结果如下所示: 查询指定进程的PIDps-ef|grepzookeeper2、使用ps查询指定进程名或者PID的占用情况ps-aux|grepz......