嵌入式的软件开发多了,就开始习惯用配置文件来保存内容,不过现在设备资源丰富了,甚至有些内容在X86平台上开发,那么数据库自然就也可以作为存储软件,接入到程序当中了,能吃的了生活的哭,也得能享受生活的甜啊
安装mysql
下载并安装MySQL官方的 Yum Repository
[root@localhost mysql]# wget -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
--2021-10-11 11:27:29-- http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
正在解析主机 dev.mysql.com (dev.mysql.com)... 137.254.60.11
正在连接 dev.mysql.com (dev.mysql.com)|137.254.60.11|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 301 Moved Permanently
位置:https://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm [跟随至新的 URL]
--2021-10-11 11:27:29-- https://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
正在连接 dev.mysql.com (dev.mysql.com)|137.254.60.11|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 302 Found
位置:https://repo.mysql.com//mysql57-community-release-el7-10.noarch.rpm [跟随至新的 URL]
--2021-10-11 11:27:30-- https://repo.mysql.com//mysql57-community-release-el7-10.noarch.rpm
正在解析主机 repo.mysql.com (repo.mysql.com)... 104.86.185.42
正在连接 repo.mysql.com (repo.mysql.com)|104.86.185.42|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:25548 (25K) [application/x-redhat-package-manager]
正在保存至: “mysql57-community-release-el7-10.noarch.rpm”
100%[===================================================================================================================================================================================================>] 25,548 139KB/s 用时 0.2s
2021-10-11 11:27:31 (139 KB/s) - 已保存 “mysql57-community-release-el7-10.noarch.rpm” [25548/25548])
然后就可以yum进行安装了
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server
启动mysql
执行下面命令启动mysql
systemctl start mysqld.service
然后执行下面命令查看mysql状态
[root@localhost mysql]# systemctl status mysqld.service
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since 一 2021-10-11 09:56:00 CST; 1s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 21414 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
Process: 21314 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 21416 (mysqld)
CGroup: /system.slice/mysqld.service
└─21416 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
10月 11 09:55:53 localhost.localdomain systemd[1]: Starting MySQL Server...
10月 11 09:56:00 localhost.localdomain systemd[1]: Started MySQL Server.
设置开机启动
systemctl enable mysqld.service
然后可以重启机器,测试一下是否自动启动了
配置Mysql
1.修改密码
首先通过命令获取默认密码
[root@localhost mysql]# grep "password" /var/log/mysqld.log
2021-10-11T01:55:56.233557Z 1 [Note] A temporary password is generated for root@localhost: qN_V/?bwb1%Q
可以看到默认密码是一串随机字符串:qN_V/?bwb1%Q
然后我们登陆mysql命令行
[root@localhost mysql]# mysql -uroot -p
Enter password:
此处输入密码:qN_V/?bwb1%Q
然后进入mysql命令行。
修改密码用如下指令
ALTER USER 'root'@'localhost' IDENTIFIED BY 'XXXxxx123456!@#';
默认的密码需要大小写字母,数字和符号组成,如果我们嫌密码太长太复杂,可以通过修改密码强度等级,来允许自己配置简单密码。(不过并不推荐,因为太容易被人破解)
以下操作请在大人陪同下进行
执行密令
SHOW VARIABLES LIKE 'validate_password%';
可以看到当前的密码配置参数
关于 mysql 密码策略相关参数;
名称 | 含义 |
---|---|
validate_password_check_user_name | 设置为ON的时候表示能将密码设置成当前用户名 |
validate_password_dictionary_file | 指定密码验证的字典文件路径 |
validate_password_length | 固定密码的总长度 |
validate_password_mixed_case_count | 整个密码中至少要包含大/小写字母的总个数 |
validate_password_number_count | 整个密码中至少要包含阿拉伯数字的个数 |
validate_password_policy | 指定密码的强度验证等级,默认为 MEDIUM |
关于 validate_password_policy 的取值: | |
0/LOW:只验证长度; | |
1/MEDIUM:验证长度、数字、大小写、特殊字符; | |
2/STRONG:验证长度、数字、大小写、特殊字符、字典文件; | |
validate_password_special_char_count | 整个密码中至少要包含特殊字符的个数 |
所以如果想要设置弱密码,可以将validate_password_policy修改为LOW
mysql>set global validate_password_policy=LOW;
mysql> flush privileges;
2.修改可以外部访问
这个也仅限于开发阶段进行这种操作,方便查看数据修改情况,后续肯定是要关闭或者做其他安全配置的。
同样,以下操作需要在大人陪同下进行
首先要配置mysql
mysql> grant all privileges on *.* to 'root'@'%' identified by 'XXXxxx123456!@#' with grant option;
mysql> flush privileges;
然后修改防火墙
[root@localhost mysql]# firewall-cmd --zone=public --add-port=3306/tcp --permanent; firewall-cmd --reload
3.修改编码方式
首先查看默认编码方式,采用命令status
可以看到默认的latin1编码
修改方式
[root@localhost mysql]# vi /etc/my.cnf
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
[client]
default-character-set=utf8
[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
character-set-server=utf8
collation-server=utf8_general_ci
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
增加了四行。
[client]
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci
然后重启mysql
systemctl restart mysqld.service
再次查看编码方式
搞定
测试工具推荐使用Navicat Premium,可以方便的以图形化的界面来查看mysql数据库。
这篇主要是介绍如何安装配置mysql,接下来还会介绍如何进行C语言环境下mysql的API调用,即实现快速访问,同时还会关注多进程多线程的并发问题。
今天开会,为了得到老板的肯定,领导要求延迟下班,却没说有什么好处,我想现在画饼也太真实了吧,怕我们肠胃不好,连饼都不画了,自己去想象吧
这也就是我所说的,学习是打工的第一要务的主要原因