Linux 系统安装和卸载MySQL

本文详细介绍了在Linux系统中通过两种方法安装和卸载MySQL的过程,包括依赖包的安装、服务的启动与配置、密码修改、远程访问权限设置以及binlog日志的开启。同时,还提供了查看和修改SQL模式的方法,确保数据库的正常运行和管理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux 系统安装和卸载MySQL

1 第一种方式下载安装

1.1 下载Linux 安装包

 网址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads

1.2 安装MySQL

1). 卸载 centos 中预安装的 mysql

    rpm -qa | grep -i mysql #查看有没有默认安装的
    rpm -e mysql-libs-5.1.71-1.el6.x86_64(版本) --nodeps #卸载
    
2). 上传 mysql 的安装包
3). 解压 mysql 的安装包 

    mkdir mysql #创建文件夹
    tar -xvf MySQL-5.6.22-1.el6.i686.rpm-bundle.tar 

4). 安装依赖包 

    yum -y install libaio.so.1 libgcc_s.so.1 libstdc++.so.6 libncurses.so.5 --setopt=protected_multilib=false(这条命令不对的话,执行yum install -y perl-Module-Install.noarch )

    yum  update libstdc++-4.4.7-4.el6.x86_64
    (同样 命令不对的话,执行yum install libaio(安装mysql server时 执行这条语句))

5). 安装 mysql-client

    rpm -ivh MySQL-client-5.6.22-1.el6.i686.rpm

6). 安装 mysql-server

    rpm -ivh MySQL-server-5.6.22-1.el6.i686.rpm

1.3 启动 MySQL 服务

service mysql start

service mysql stop

service mysql status

service mysql restart

1.4 登录MySQL

mysql 安装完成之后, 会自动生成一个随机的密码, 并且保存在一个密码文件中 : /root/.mysql_secret (cat /root/.mysql_secret)

mysql -u root -p 

登录之后, 修改密码 :

set password = password('itcast');

授权远程访问 : 

grant all privileges on *.* to '用户名' @'%' identified by '密码';(root root)
刷新
flush privileges;

如果还远程连接不了,把防火墙关闭

service iptables status #查看防火墙状态
service iptables start 
service iptables stop

centOS7 
systemctl start firewalld #启动
systemctl status firewalld #查看运行状态
systemctl stop firewalld #关闭
systemctl disable firewalld.service #禁止开机启动
firewall-cmd --state #查看默认防火墙状态
firewall-cmd --reload #重启防火墙

2 第二种方式下载安装

2.1 安装MySQL官方的yum repository

[root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

img

成功

img

2.2 下载rpm包

[root@localhost ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm

img

成功

img

2.3 安装MySQL服务

[root@localhost ~]# yum -y install mysql-community-server

img

出现complete!表示成功

2.4 启动MySQL服务

[root@localhost ~]# systemctl start  mysqld.service查看mysql状态 systemctl status mysqld.service重启:systemctl restart mysqld.service停止:systemctl stop mysqld.service

看到类似下面的界面,或者以Starting MySqL server… started MysqlServer…结尾的就成功启动了

img

2.5 配置开机自启

[root@woitumi-128 ~]# systemctl enable mysqld[root@woitumi-128 ~]# systemctl daemon-reload   刚刚配置的服务需要让systemctl能识别,就必须刷新配置

2.6 登录Mysql

2.6.1 先查看MySQL的默认密码

这个默认的初始密码在/var/log/mysqld.log文件中,我们可以用这个命令来查看:

grep "password" /var/log/mysqld.log

img

root@localhost: 默认密码

2.6.2 进入MySQL后 修改密码

登录 mysql -u root -p

mysql> set password for 'root'@'localhost'=password('Luoye111!');

设置简单的密码的话 可能会报ERROR 1819 (HY000): Your password does not satisfy the current policy requirements错误 密码简单

mysql> set global validate_password_policy=0;  //改变密码等级mysql> set global validate_password_length=4;   //改变密码最小长度
mysql> set password for 'root'@'localhost'=password('root');

成功

2.7 远程连接

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Luoye111!';

刷新

mysql> flush privileges;

3 开启binlog日志

使用下面命令检查是否开启binlog

show variables like '%log_bin%';

img

退出MySQL,使用vim编译器编辑器修改MySQL的配置文件/etc/my.cnf

[root@iz8vb4alt8m1wxfs3x9ibkz ~]# vim /etc/my.cnf

img

#开启binlog日志 并指定日志的基本文件名和存储路径
log-bin=/var/lib/mysql/mysql-bin
#随机指定一个不能和其他集群中机器重名的字符串
server-id=1998

img

开启成功
img

查看/var/lib/mysql

ls /var/lib/mysql

img

4 卸载MySQL

卸载 安装的 mysql

rpm -qa | grep -i mysql #查看有没有默认安装的rpm -e mysql-libs-5.1.71-1.el6.x86_64(版本) --nodeps #卸载

卸载之后再次执行查看命令看是否卸载完毕!

使用 find / -name mysql 命令查找mysql的相关目录

img

然后依次使用rm -rf命令删除 实例:

rm -rf /usr/share/mysql/

注意:卸载后 /etc/my.cnf 不会删除,需要进行手工删除
再手动删除 /var/log/mysqld.log 这个文件,如没有这两个文件,可跳过(如果不删除这个文件,会导致新安装的 mysql 无法生成新密码,导致无法登陆)

rm -rf /etc/my.cnf rm -rf /var/log/mysqld.log

注意

如果安装是5.7.x 版本 注意!

MySQL 5.7.5及以上功能依赖检测功能。如果启用了ONLY_FULL_GROUP_BY SQL模式(默认情况下),MySQL将拒绝选择列表,HAVING条件或ORDER BY列表的查询引用在GROUP BY子句中既未命名的非集合列,也不在功能上依赖于它们。(5.7.5之前,MySQL没有检测到功能依赖关系,默认情况下不启用ONLY_FULL_GROUP_BY。有关5.7.5之前的行为的说明,请参见“MySQL 5.6参考手册”。)

下载安装的是最新版的mysql5.7.x版本,默认是开启了 only_full_group_by 模式的,但开启这个模式后,原先的 group by 语句就报错,然后又把它移除了。 一旦开启 only_full_group_by ,感觉,group by 将变成和 distinct 一样,只能获取受到其影响的字段信息,无法和其他未受其影响的字段共存,这样,group by 的功能将变得十分狭窄了 only_full_group_by 模式开启比较好。因为在 mysql 中有一个函数: any_value(field) 允许,非分组字段的出现(和关闭 only_full_group_by 模式有相同效果)。

在navicat中进行

1、查看sql_modeSELECT @@sql_mode;查询出来的值为:

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

2、去掉ONLY_FULL_GROUP_BY,重新设置值。

SET @@global.sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

3、上面是改变了全局sql_mode,对于新建的数据库有效。对于已存在的数据库,则需要在对应的数据下执行:

SET sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

如果已经有数据库存在了 2和3的执行顺序反过来执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值