Centos7.1.1503 安装MySQL8.0.19

一.安装检查

1.1检查mariadb

rpm -qa | grep mariadb

在这里插入图片描述

1.2 删除mariadb

yum -y remove mariadb*

在这里插入图片描述

1.3 检查MySQL

rpm -qa | grep mysql

在这里插入图片描述

1.4 删除MySQL

yum -y remove mysql*

1.5 删除MySQL配置文件

rm -rf /etc/my.cnf

1.5 删除文件

rm -rf /var/lib/mysql 

二.MySQL安装

2.1 下载MySQL rpm

wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm

在这里插入图片描述

2.2 安装 rpm

rpm -Uvh mysql80-community-release-el7-3.noarch.rpm

在这里插入图片描述

2.3 yum 安装mysql服务

yum install -y mysql-community-server

在这里插入图片描述
在这里插入图片描述

2.4 MySQL初始化

注意事项 安装完毕之后执行如下初始化语句 在初始化时,设置 lower-case-table-names

/*配置文件修改 /etc/my.cnf */
[mysqld]
lower_case_table_names        = 1

/*执行初始化 */
/usr/sbin/mysqld --initialize --user=mysql --lower-case-table-names=1

否则会报如下错误

Different lower_case_table_names settings for server ('0') and data dictionary ('1')

在这里插入图片描述

2.5 启动服务

systemctl start mysqld.service

如果报如下错误

[InnoDB] os_file_get_status() failed on './ibdata1'. Can't determine file permissions

依次执行下面步骤

/*执行初始化 */
cat /etc/my.cnf
pid-file=/var/run/mysqld/mysqld.pid
/*查看该目录是否存在。如没有,则创建,并修改属主属组。 */

ll /var/run/mysqld/
#不存在
mkdir -p /var/run/mysqld/
chown -R mysql:mysql /var/run/mysqld
/*启动。 */
systemctl status mysqld.service
/*关闭selinux 并重启。 */

setenforce 0
systemctl status mysqld.service
/*查看状态 */
systemctl status mysqld.service

2.6 查看服务状态

systemctl status mysqld.service

在这里插入图片描述

2.7 查看MySQL安装临时密码

grep 'temporary password' /var/log/mysqld.log

在这里插入图片描述

2.8 登录root账号修改初始密码,复制上面的密码登录

mysql -u root -p

ALTER USER 'root'@'localhost' IDENTIFIED  WITH mysql_native_password BY 'root';

在这里插入图片描述

2.9 配置远程访问

/*切换数据库*/
use mysql;
select user,host,plugin,authentication_string from mysql.user;
select user,host,plugin from mysql.user;

/*修改root的权限并刷新权限*/
update mysql.user set host='%' where user='root';
flush privileges;

在这里插入图片描述

2.10 新建测试账号

create user 'test'@'%' identified by 'test';

/*给test用户授予testdb数据库的所有权限(可远程登陆)*/
grant all privileges on testdb.* to 'test'@'%';
flush privileges;
/*给test用户授予testdb数据库的insert,delete,update权限(可远程登陆)*/
grant select on testdb.* to 'test'@'%';
flush privileges;
/*查看用户的权限*/
show grants for 'test'@'%';

在这里插入图片描述

2.11 修改端口(可选)

vi /etc/my.cnf

/* 默认配置不含port行需自行添加,按esc退出INSERT模式 :wq 保存*/
port=6666

/* 重启mysql并查看端口状态 注意:如果是云服务器(如阿里云),一定要检查安全组是否开启相应的端口,不然客户端连不上*/

systemctl restart mysqld
netstat -nlpt

2.12 修改mysql的数据、日志存放路径


/* 先停止msyql*/
systemctl stop mysqld
/* 先创建好要存储的位置*/

mkdir -p /data/mysql
cd /data/mysql

/*把文件移到/data/mysql/文件夹下,cp -a参数是权限也一起复制,然后删除原文件夹*/
cp -a /var/lib/mysql /data/
rm -rf /var/lib/mysql

/*修改软连接*/
ln -s /data/mysql /var/lib/
/*查看软连接*/


ls -la /var/lib/mysql
/*修改my.cnf配置文件*/
datadir=/data/mysql
socket=/data/mysql/mysql.sock
/* 启动msyql*/
systemctl start mysqld

/* 登录mysql,查看数据文件*/

mysql -u root -p
show global variables like "%datadir%";

/* 查看安装路径*/
whereis mysql
/* 查看版本*/
mysql -V

2.13 防火墙配置将3306端口开放

/* 配置将3306端口开放 --permanent永久生效,没有此参数重启后失效*/
firewall-cmd --zone=public --add-port=3306/tcp --permanent

/* 重新载入*/
firewall-cmd --reload



/* 查看*/
firewall-cmd --zone=public --query-port=3306/tcp

/* 查看安装路径*/
vi /etc/sysconfig/iptables
添加
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT


三.常见问题

3.1 常见问题

  • 如果客户端连接报错"Authentication plugin ‘caching_sha2_password’ cannot be
    loaded",是以为mysql 8的加密方式改了。有两种选择 1、升级客户端 2、把加密方式改为传统的方式
    推荐用新的加密方式(一般升级客户端就可以了),老项目代码的话可能有老的jar包等不支持新加密,下面是改为传统加密方式
ALTER mysql.USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值