腾讯云 轻量级服务器 部署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
控制台会出现绿色的active(running),详细提示如下:
获取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
以上hostname、username、password均替换为你自己相应的信息
注:-p和password之间无空格!!!!!!
但经过我的测试没有成功,可能是不同的版本差异造成的。
成功后的界面如图:
对于上述复杂的密码,我这支笨猪记不住啊(小尴尬),修改密码势在必行啊!
那就修改密码:设置的密码必须符合以下条件:默认是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 密码策略相关参数;
1)validate_password_length 固定密码的总长度;
2)validate_password_dictionary_file 指定密码验证的文件路径;
3)validate_password_mixed_case_count 整个密码中至少要包含大/小写字母的总个数;
4)validate_password_number_count 整个密码中至少要包含阿拉伯数字的个数;
5)validate_password_policy 指定密码的强度验证等级,默认为 MEDIUM;
关于 validate_password_policy 的取值:
0/LOW:只验证长度;
1/MEDIUM:验证长度、数字、大小写、特殊字符;
2/STRONG:验证长度、数字、大小写、特殊字符、字典文件;
6)validate_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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix