centos7系统下MySQL安装与卸载教程详细步骤

centos7系统下MySQL安装与卸载教程详细步骤

1 卸载mysql步骤

1.1 查看mysql是否安装

rpm -qa |grep -i mysql

我的安装如下

MySQL-server-5.6.25-1.el6.x86_64
MySQL-client-5.6.25-1.el6.x86_64

1.2 开始卸载

yum remove MySQL-server-5.6.25-1.el6.x86_64
yum remove MySQL-client-5.6.25-1.el6.x86_64

1.3 查看是否卸载完成

rpm -qa |grep -i mysql

1.4 查找mysql相关目录

find / -name mysql

我是这样

/etc/selinux/targeted/active/modules/100/mysql
/var/lib/mysql
/var/lib/mysql/mysql
/usr/lib64/mysql
/usr/share/mysql
/usr/local/mysql

1.5 删除相关目录

rm -rf /etc/selinux/targeted/active/modules/100/mysql
rm -rf /var/lib/mysql
rm -rf /var/lib/mysql/mysql
rm -rf /usr/lib64/mysql
rm -rf /usr/share/mysql
rm -rf /usr/local/mysql

1.6 再次查看mysql相关信息

find / -name mysql

find / -name "mysql*" 		查找文件名称是以mysql开头的文件

which mysql 			查看mysql配置信息,删除对应的配置文件等信息

1.7 删除 /etc/my.cnf

rm -rf /etc/my.cnf

1.7 删除 /var/log/mysqld.log

(如果不删除这个文件,会导致新安装的mysql无法生存新密码,导致无法登陆)

rm -rf /var/log/mysqld.log

2 安装mysql常见的错误

error -bash: ./scripts/mysql_install_db: /usr/bin/perl:bad interpreter: 没有那个文件或目录

解决: yum -y install perl perl-devel

error while loading shared libraries: libaio.so.1:cannot open shared object file: No such file or directory

解决:yum -y install libaio-devel

error please install the following Perl modules before executing /usr/bin/mysql_install_db:

Data::Dumper

解决:yum install -y perl-Data-Dumper 

error please install the following Perl modules before executing /usr/bin/mysql_install_db:
Data::Dumper

解决: yum -y install autoconf

error The server quit without updating PID file (/usr/local/mysql/data/localhost.pid)

未解决

rpm -ivh MySQL-server-5.6.25-1.el6.x86_64.rpm error: Failed dependencies:

解决: rpm -ivh MySQL-server-5.6.25-1.el6.x86_64.rpm  --nodeps --force

3 centos7系统安装mysql5.6.25

3.1 查看mysql是否安装

rpm -qa |grep -i mysql

没有卸载,按照卸载步骤走!

3.2 通常我习惯将软件安装到 /usr/local

在/usr/local目录下创建一个mysql的文件夹
mkdir mysql

3.3 将mysql5.6.25的安装文件上传到

随便哪个位置,自己记住就行

3.4 将mysql5.6.25的tar解压包解压到指定目录

[root@Centos7 ~]# tar -xvf MySQL-5.6.25-1.el6.x86_64.rpm-bundle.tar -C /usr/local/mysql
MySQL-shared-5.6.25-1.el6.x86_64.rpm
MySQL-shared-compat-5.6.25-1.el6.x86_64.rpm
MySQL-embedded-5.6.25-1.el6.x86_64.rpm
MySQL-devel-5.6.25-1.el6.x86_64.rpm
MySQL-client-5.6.25-1.el6.x86_64.rpm
MySQL-test-5.6.25-1.el6.x86_64.rpm
MySQL-server-5.6.25-1.el6.x86_64.rpm

3.5 卸载centos7系统自带的Mariadb

rpm -qa|grep mariadb

rpm -e --nodeps 文件名 (上面指令查出的所有文件)

3.6 创建mysql用户组和mysql用户

方法一
groupadd mysql
useradd -r -g mysql mysql

方法二
groupadd -g 1000 mysql
useradd mysql -g mysql -p mysql

3.7 安装mysql

rpm -ivh MySQL-server-5.6.25-1.el6.x86_64.rpm

如果安装时出现 rpm -ivh MySQL-server-5.6.25-1.el6.x86_64.rpm error: Failed dependencies:

/usr/bin/perl is needed by MySQL-server-5.6.25-1.el6.x86_64

​ libaio.so.1()(64bit) is needed by MySQL-server-5.6.25-1.el6.x86_64

​ libaio.so.1(LIBAIO_0.1)(64bit) is needed by MySQL-server-5.6.25-1.el6.x86_64

​ libaio.so.1(LIBAIO_0.4)(64bit) is needed by MySQL-server-5.6.25-1.el6.x86_64

​ net-tools is needed by MySQL-server-5.6.25-1.el6.x86_64

解决: rpm -ivh MySQL-server-5.6.25-1.el6.x86_64.rpm  --nodeps --force

安装时不再分析包之间的依赖关系而直接安装,也就不会再提示error: Failed dependencies:这样的错误了。

下面的提示是告诉我们root用户的密码第一次是随机生成的,它保存在/root/.mysql_secret中,第一次登录需要修改root密码。

A RANDOM PASSWORD HAS BEEN SET FOR THE MySQL root USER !
You will find that password in ‘/root/.mysql_secret’.

You must change that password on your first connect,
no other statement but ‘SET PASSWORD’ will be accepted.
See the manual for the semantics of the ‘password expired’ flag.

接着安装

rpm -ivh MySQL-client-5.6.25-1.el6.x86_64.rpm
rpm -ivh MySQL-devel-5.6.25-1.el6.x86_64.rpm
rpm -ivh MySQL-shared-5.6.25-1.el6.x86_64.rpm
rpm -ivh
rpm -ivh

3.8 启动mysql

service mysql start
[root@Centos7 mysql]# service mysql start
Starting MySQL....... SUCCESS! 
[root@Centos7 mysql]# 
看到这里就代表启动成功!!!

3.9 找到/root/.mysql_secret中的随机密码

cat /root/.mysql_secret
The random password set for the root user at Fri Sep  4 10:32:12 2020 (local time): 51WL12iWBWh9uhns

51WL12iWBWh9uhns就是随机密码

3.10 使用随机密码登录mysql

mysql -uroot -p51WL12iWBWh9uhns

3.11 修改密码

set password=password('123456');
[root@Centos7 mysql]# mysql -uroot -p51WL12iWBWh9uhns
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.25

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> set password=password('123456');
Query OK, 0 rows affected (0.00 sec)

3.12 恭喜你完成了

3.13 mysql远程访问设置

# 设置
grant all privileges on *.* to 'root' @'%' identified by '123456';
# 刷新
flush privileges;
mysql> grant all privileges on *.* to 'root' @'%' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

如果用远程软件还是不能连接虚拟机中的mysql,可能是防火墙没有关闭

centos7关闭防火墙

# 查看防火墙状态
firewall-cmd --state

# 停止firewall
systemctl stop firewalld.service

# 禁止firewall开机启动
systemctl disable firewalld.service 


# 开启3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
命令含义
--zone #作用域
--add-port=3306/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效


# 重启防火墙
firewall-cmd --reload
其他常用命令:
firewall-cmd --state       				##查看防火墙状态,是否是running
firewall-cmd --reload      	##重新载入配置,比如添加规则之后,需要执行此命令
firewall-cmd --get-zones   							  ##列出支持的zone
firewall-cmd --get-services   	   ##列出支持的服务,在列表中的服务是放行的
firewall-cmd --query-service ftp     ##查看ftp服务是否支持,返回yes或者no
firewall-cmd --add-service=ftp           			  ##临时开放ftp服务
firewall-cmd --add-service=ftp --permanent   		  ##永久开放ftp服务
firewall-cmd --remove-service=ftp --permanent  		  ##永久移除ftp服务
firewall-cmd --add-port=80/tcp --permanent    		   ##永久添加80端口 
iptables -L -n       			  ##查看规则,这个命令是和iptables的相同的
man firewall-cmd      										##查看帮助
更多命令,使用 firewall-cmd --help 查看帮助文件
设置 iptables service
yum -y install iptables-services

如果要修改防火墙配置,如增加防火墙端口3306
vi /etc/sysconfig/iptables 
增加规则
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

保存退出后
systemctl restart iptables.service #重启防火墙使配置生效
systemctl enable iptables.service #设置防火墙开机启动

3.14 Mysql服务加入到系统服务并自动启动操作

查询服务启动列表:
chkconfig --list

# 添加mysql服务
chkconfig --add mysql

# 开机自动启动mysql:
chkconfig mysql on

MySQL的配置文件my.cnf

额外补充,可以不用按照这个来配置。

在my.cnf文件中添加以下配置代码:

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock

[mysqld]
skip-name-resolve
#设置3306端口
port = 3306
socket=/var/lib/mysql/mysql.sock

# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/home/local/mysql/data

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

4 Linux(Centos7)常见命令

查看磁盘空间大小

df -hl
Filesystem  Size  Used  Avail  Use%  Mounted on
文件系统     容量  已用  可用    已用% 挂载点

关闭防火墙

# 停止firewall
systemctl stop firewalld.service
限时福利1:原价 129 元,最后2天仅需 69 元!后天涨价至98元 限时福利2:购课进答疑群专享柳峰(刘运强)老师答疑服务 限时福利3:购课添加助教领取价值 800 元的编程大礼包 为什么需要掌握高性能的MySQL实战? 由于互联网产品用户量大、高并发请求场景多,因此对MySQL的性能、可用性、扩展性都提出了很高的要求。使用MySQL解决大量数据以及高并发请求已经是程序员的必备技能,也是衡量一个程序员能力和薪资的标准之一。 为了让大家快速系统了解高性能MySQL核心知识全貌,我为你总结了「高性能 MySQL 知识框架图」,帮你梳理学习重点,建议收藏! 【课程设计】 课程分为四大篇章,将为你建立完整的 MySQL 知识体系,同时将重点讲解 MySQL 底层运行原理、数据库的性能调优、高并发、海量业务处理、面试解析等。 一、性能优化篇: 主要包括经典 MySQL 问题剖析、索引底层原理和事务与锁机制。通过深入理解 MySQL 的索引结构 B+Tree ,学员能够从根本上弄懂为什么有些 SQL 走索引、有些不走索引,从而彻底掌握索引的使用和优化技巧,能够避开很多实战中遇到的“坑”。 二、MySQL 8.0新特性篇: 主要包括窗口函数和通用表表达式。企业中的许多报表统计需求,如果不采用窗口函数,用普通的 SQL 语句是很难实现的。 三、高性能架构篇: 主要包括主从复制和读写分离。在企业的生产环境中,很少采用单台MySQL节点的情况,因为一旦单个节点发生故障,整个系统都不可用,后果往往不堪设想,因此掌握高可用架构的实现是非常有必要的。 四、面试篇: 程序员获得工作的第一步,就是高效的准备面试,面试篇主要从知识点回顾总结的角度出发,结合程序员面试高频MySQL问题精讲精练,帮助程序员吊打面试官,获得心仪的工作机会。
©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页