腾讯云 轻量级服务器 部署flask项目(4:安装mysql数据库与数据库服务器)

1、下载安装包

在根目录下建立文件夹:mysql

进入mysql文件夹,下载文件包

wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

图示下载完毕

 

 2、安装mysql

[root@VM-4-9-centos mysql]# yum -y install mysql57-community-release-el7-10.noarch.rpm

安装完毕如图

3、安装 mysql sever

[root@VM-4-9-centos mysql]# yum -y install mysql-community-serve

安装时出现错误

No match for argument: mysql-community-serve

Error: Unable to find a match: mysql-community-serve如下图

于是:

百度之后执行下面的两条命令有效:

首先执行:yum module disable mysql

会提示 y/n,选择y

 

 

 

再执行下面的命令

yum -y install mysql-community-server,执行结果出现如下警告

warning: /var/cache/dnf/mysql57-community-65b9ecb4cc6a2553/packages/mysql-community-client-5.7.37-1.el7.x86_64.rpm: Header V4 RSA/SHA256 Signature, key ID 3a79bd29: NOKEY

MySQL 5.7 Community Server                                           22 MB/s |  27 kB     00:00    

Importing GPG key 0x5072E1F5:

 Userid     : "MySQL Release Engineering <mysql-build@oss.oracle.com>"

 Fingerprint: A4A9 4068 76FC BD3C 4567 70C8 8C71 8D3B 5072 E1F5

 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

Key imported successfully

Import of key(s) didn't help, wrong key(s)?

Public key for mysql-community-client-5.7.37-1.el7.x86_64.rpm is not installed. Failing package is: mysql-community-client-5.7.37-1.el7.x86_64

 GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

Public key for mysql-community-common-5.7.37-1.el7.x86_64.rpm is not installed. Failing package is: mysql-community-common-5.7.37-1.el7.x86_64

 GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

Public key for mysql-community-libs-5.7.37-1.el7.x86_64.rpm is not installed. Failing package is: mysql-community-libs-5.7.37-1.el7.x86_64

 GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

Public key for mysql-community-server-5.7.37-1.el7.x86_64.rpm is not installed. Failing package is: mysql-community-server-5.7.37-1.el7.x86_64

 GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

The downloaded packages were saved in cache until the next successful transaction.

You can remove cached packages by executing 'yum clean packages'.

Error: GPG check FAILED

使用命令:yum repolist all | grep mysql  查看mysql相关资源

 

 

解决上述问题的办法:重新导入秘钥,网上其他的各种解决办法均无效。最后度娘找到如下命令导入新的秘钥,成功解决问题。

[root@VM-4-9-centos mysql]# rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

然后继续执行

yum -y install mysql-community-server

亲测成功,如下图

 

 哈哈哈哈,高兴一下。非常感谢博主:https://firecode.blog.csdn.net/?type=blog

 

4、测试MySQL服务器

 

启动服务器并查看运行状态

 

启动:systemctl start  mysqld.service

 

查看状态:systemctl status mysqld.service

 

控制台会出现绿色的activerunning),详细提示如下:

 

 获取MySQL安装后的临时密码:

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

得到临时密码:o9UkxwZg-%E_

 

5、控制台远程登陆MySQL服务器

 

先说说遇到的两个问题:

 

1、按腾讯云官方文档所讲连接数据库时,无法输入密码。表现为出现Enter Password:后键盘键入没有反映。

 

2、由于无法输入密码,我直接按回车会出现ERROR 1045(28000):Access denied for user

 

问题分析:

 

出现第二个问题的原因就是密码不正确。可以我根本无法输入密码啊,这就尴尬了。。。

 

解决办法:

 

采用如下办法连接数据库:mysql -u root -p******

 

注星号是你通过grep "password" /var/log/mysqld.log指令获得的临时密码。

 

网上也有人说使用指令:mysql -h hostname -u username -ppassword

 

以上hostnameusernamepassword均替换为你自己相应的信息

 

注:-ppassword之间无空格!!!!!!

 

但经过我的测试没有成功,可能是不同的版本差异造成的。

 

成功后的界面如图:

 

对于上述复杂的密码,我这支笨猪记不住啊(小尴尬),修改密码势在必行啊!

那就修改密码设置的密码必须符合以下条件:默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。

在上面图示mysql>提示符下:输入

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'aA@123456789';

提示Query OK, 0 rows affected (0.02 sec),意味着密码修改成功。 

注意:mysql使用临时密码进入后,必须立即修改密码,否则会提示错误1820错误:

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

修改成功后,我们可以通过下面命令查看密码策略

 

可知密码强度为medium。最小长度为8位。为保护数据安全,遵照此策略即可,无需修改,想修改的话可将长度改为6为,即将设置 validate_password_policy 的全局参数为 LOW 即可

输入设值语句set global validate_password_policy=LOW; ” 进行设值,

如下图:

 

 按照通用的来讲,设置为 6 位的密码,设置 validate_password_length 的全局参数为 6 即可,输入设值语句:

set global validate_password_length=6;

进行设值,

 

普及一下

关于 mysql 密码策略相关参数;

1validate_password_length  固定密码的总长度;

2validate_password_dictionary_file 指定密码验证的文件路径;

3validate_password_mixed_case_count  整个密码中至少要包含大/小写字母的总个数;

4validate_password_number_count  整个密码中至少要包含阿拉伯数字的个数;

5validate_password_policy 指定密码的强度验证等级,默认为 MEDIUM

 关于 validate_password_policy 的取值:

0/LOW:只验证长度;

1/MEDIUM:验证长度、数字、大小写、特殊字符;

2/STRONG:验证长度、数字、大小写、特殊字符、字典文件;

6validate_password_special_char_count 整个密码中至少要包含特殊字符的个数;

致此,关于 mysql 密码策略问题 就完美解决了!

此处参考博主“不听话的M老大”(https://www.cnblogs.com/livedian/p/12743031.html)资料。在此感谢。

 6、测试数据库

(1)创建数据库

操作1:创建一个名为dalian_report的数据库

命令行:create database dalian_report;

 

创建完成。

操作2:查看数据库

命令行:show databases;

创建表前: 红色箭头指向新建的数据库  你的数据库名称

  

(2)创建数据库

打开数据库

执行命令:use 你的数据库名称

创建表,从pycharm中数据库的DDL中复制创建脚本为纯文本,粘贴到窗口中,回车即可。

 

 提示创建成功

 

 看一下新建的表已经存在

 

 访此方法,泡制其它表。

(3)导入数据

第一步:pycharm中导出数据格式为CVS的数据。通过winscp上传到服务器。

第二步:查看从本地导入文件的参数没有打开:

执行:mysql>提示符下,输入:

mysql> SHOW VARIABLES LIKE '%local%';

 

 显示,导入文件的配置已经处于打开状态。即local_infile 的值为ON.

mysql查看表结构命令,如下:

desc 表名

load data infile '/root/mysql/huludao_report_baseinfo_pwk.csv' into table `baseinfo_pwk` fields terminated by ',' optionally enclosed by '"' escaped by '"' lines terminated by '\n';

出现错误

 

 从上图可知是--secure-file-priv”进行了拦截,输入下面命令进行查看

show variables like '%secure%';

结果如图:

 

 各位看官到此看明白了吗,那就是我的原始数据存储的目录错误,应该为服务器上的/var/lib/mysql-files/中,只好远程再次上传到这个目录中,然后将上面导入语句/root/mysql/进行修改,修改为:

mysql> load data infile '/var/lib/mysql-files/huludao_report_baseinfo_pwk.csv' into table `baseinfo_pwk`  fields terminated by ',' optionally enclosed by '"' escaped by '"' lines terminated by '\n';

再次执行,出现错误如下:

ERROR 1292 (22007): Incorrect date value: '' for column 'sy_sztime' at row 1

说明我的日期字段“sy_sztime”数据为空。查看数据结构:

 

 明明允许为空啊,汗...,这说明mysql导入的日期或日期时间数据字段不允许为空。解决办法:

mysql> set global sql_mode='';

Query OK, 0 rows affected (0.01 sec)

 然后再次执行导入,错误如下:

ERROR 1062 (23000): Duplicate entry '776' for key 'PRIMARY'

继续解决,nnd

这个问题是由于mysql表中的一个id自增长字段导致。

id的int类型改成了bigint就可以了,执行命令:

alter table baseinfo_pwk  modify column id bigint;

成功。另外一个办法就是,清空表(truncate table  表名称;),或重新创建,然后执行load***命令,导入数据成功。

 

 本以为真的成功了,谁知道select一下,出现乱码了,继续nnd。

 

 肯定是编码出现不对应问题。解决方案:

从pycharm导出的cvs格式数据,一定要用记事本打开并另存为utf-8编码的文件,再上传到远程服务器当中。再导入,ok!

 

 最后,还要修改一下权限,根据个人需求,设置数据库用户在所有ip下以及在本地可访问,以下用root用户做演示。

 

 一定要记得执行下面代码刷新MySQL的系统权限相关表

mysql>flush privileges; 

 

 

退出数据库

命令行:quit  按ctrl+c

下一篇:解决数据库乱码的终极大招

 

退出mysql,命令:\q

 

 

 

 

posted @   红旗漫卷西风  阅读(496)  评论(2编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示