0X00 修改配置文件
MySQL/MariaDB默认并没有采用utf-8编码,所以我们要修改配置文件,以让其使用utf-8。
/etc/my.cnf就是配置文件,打开之后在[mysqld]下面加入两行,使其变成
修改好配置文件之后重启服务
0X01 修改数据库的字符集
在修改配置文件之后新建的数据库默认就是使用utf-8了,但是之前的还不是所以要修改一下。登录到数据库,在命令行界面修改数据库的字符集。
再次重启数据库服务。这样再连接到数据库就解决掉汉字变问号的问题了
0X02 推荐两款软件
大家好多人都在用Navicat,但绝大多数人用的都是盗版软件,这里推荐大家用一些好用的开源软件来替代。
1 HeidiSQL
1. 一款开源软件
2. 可以连接MySQL/MariaDB/SQL Server
3. 官方中文支持
下载地址:HeidiSQL
2 MySQL Workbench
1. 一款开源软件
2. MySQL官方开发
3. 导出表关系图非常强大
下载地址:MySQL Workbench
0X00 最优算法不可能实现算法
最优算法听起来很棒,但是 实现起来是不可能的 。最优算法是:当发生缺页中断时,将最晚会用到的页换出。也就是说,有三个页,现在发生了缺页中断,第一个页在第201条指令的时候会用到,第二个页在第5001条指令的时候会用到,第三个页在第20000条指令的时候会用到,那么第三个页面就是最晚会被用到的,就将其换出。这样确实是最好的效率,但是真正实现不了的原因是:程序不可能知道自己在什么时候需要哪些内存,所以就不能找到最晚会被用到的页。因为要用未来的事情来判断所以我一般称之为未来算法。虽说实现不了,也不是说这个算法就没意义了。这个算法最大的意义就在于可以比较效率。效率越是接近最优算法的就越好,当一个算法已经能达到最优算法效率的101%时,就没必要累死累活的去优化效率了,可以去找一些别的瓶颈了。
0X01 最近未使用NRU
如果说最优算法叫未来算法的话,那么这个最近未使用就可以叫做历史算法,这样就好理解了。当系统发生缺页中断的时候,在内存中找到最久没被用过的页,将其换出。有一种实现方法:给每一个页设置一个 R(read)位和M(modify)位…
0X00 多线程…
0x00 MariaDB的身世
自从MySQL被Oracle收购之后,社区就一直担心MySQL可能会被闭源或者一些其他的原因导致MySQL的支持出现问题。所以现在好多发行版本默认的数据库都从MySQL转移到了Mariadb。而且社区也开始大力支持Mariadb,再加上Mariadb的使用和API和MySQL完全一样,所以这里选择使用Mariadb而不是MySQL。
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。
MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,10.0.9版起使用XtraDB(名称代号为Aria)来代替MySQL的InnoDB。
MariaDB由MySQL的创始人麦克尔·维德纽斯主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL…
0X00 firewalld 守护进程
firewall-cmd命令需要firewalld进程处于运行状态。我们可以使用systemctl status/start/stop/restart firewalld来控制这个守护进程。firewalld进程为防火墙提供服务。
当我们修改了某些配置之后(尤其是配置文件的修改),firewall并不会立即生效。可以通过两种方式来激活最新配置systemctl restart firewalld和firewall-cmd --reload两种方式,前一种是重启firewalld服务,建议使用后一种“重载配置文件”。重载配置文件之后不会断掉正在连接的tcp会话,而重启服务则会断开tcp会话。
0X01 控制端口/服务…
0X00 文件
‘文件’是进程创建的逻辑单元。 《现代操作系统(原书第三版)》
文件我们再熟悉不过了,电脑磁盘上存的都是文件。在Windows里和Unix系列系统里,表面看上去文件之间还是有一点点小的区别。比如,在Windows里主要还是以文件的后缀名来标识文件具体是什么类型的,图片还是视频;在Unix系列里文件的后缀名就没那么重要,主要后缀名是用来帮助人们识别文件类型的,操作系统并不很关心。
真正的文件类型 是文件的本质类型,不是我们常说的exe类型、doc类型、更不是什么图片类型和视频类型。在Windows下有常见的普通文件和目录。 _没错,目录其实是文件的_ 。在Unix里,还有一些叫字符特殊文件和块特殊文件的。
0X01 文件的元数据
文件里最重要的东西肯定是文件内容了,但是文件存在磁盘里是还有一些其他的相关数据也被存进去了的,那些数据被称之为元数据 。想一下文件的相关信息,在Windows里右键一个文件选择属性或者在Linux里使用ls…
0X00 Linux中的计划任务
我们使用Linux更多的时候是在服务器上,然而我们有的时候就需要让计算机在固定的某个时间做一些事情。比如我们就可能有有如下需求:
1. 临时有事需要离开电脑,但是一个小时后需要备份某个目录里的文件
2. 写了个爬虫去抓取某网站的新闻,每隔十分钟就去爬取一次
3. 周期性的执行某脚本,但放在后台的话退出ssh就会被自动关掉
4. 其实还有好多这种可能............
在Linux中有两种常见的任务管理,一个是at也就是在某时做某事,另一个是crontab也就是周期性任务表。使用at可以方便地给Linux设置一个在什么时候做什么事的计划,用crontab可以方便地给Linux设置我要做某事,多久做一次。
0X01 使用at命令
检查atd服务是否开启
atd就是at命令的守护进程,系统默认是打开着的,但是也有可能被关掉,在RHEL系中可以使用systemctl status atd来查看服务是否已经开启,没有开启的话可以用systemctl restart atd来打开服务
创建一个计划任务…
0X00 ACL是什么
ACL的全称是Access Control List访问控制列表。在Linux中可以给文件设置权限,-rwx-rw-rw这样,但是这里并不能细分,只能分到用户、组、其他用户。如果我想给某个单独的用户设置权限的话是做不到的。所以有了ACL的出现。通过ACL可以给Linux下的文件提供详细的访问控制,比如我们在设置了基本的rwx权限之后,可以通过ACL在细分用户对文件的权限。
0X01 查看文件的ACL
使用getfacl命令可以查看文件的ACL和详细的权限设置。
这里显示了文件名、所属用户、所属组、还有相对应的权限。
0X02 创建测试用户/组/文件…
0X00 查看网络配置文件
在CentOS中网络是以配置文件的形式存在系统里的,在/etc/sysconfig/network-scripts/目录下,一般情况下网卡的配置文件都在这里了,以ifcfg-就是配置文件了,打开配置文件看一下。下面注释一下关键的配置项
但是一般不建议直接使用编辑器修改网络配置文件,因为这样容易出现一些语法错误和逻辑错误,所以建议使用命令行来管理配置网络,虽然本质上都是去修改配置文件。但是使用命令行去管理网络,命令都是确保配置没有问题才会写入到文件,所以会更加安全。包括下面介绍的ip和nmcli命令,都是通过修改配置文件来完成功能的。
0X01 ifconfig 命令
这个命令在CentOS7中已经不建议使用了,不过由于之前的版本都是在用这个命令,还是说一下。ifconfig是interface configuration的缩写,也就是接口配置。
查看网络
直接输入这个命令就可以看到现在启动着的所有网络。也可以接上某个特定的网卡来查看单独的信息ifconfig enp0s3
如果想查看包括已经关闭了的网络时,使用ifconfig -a就可以了…
0X00 什么是异常
程序在运行出错的时候就会抛出异常,异常时在正确的代码里发生的,不是代码出现了错误。下面就是一个异常
运行这个程序就会报出下面的错误,错误提示说在hello.py这个文件的第6行,出现了一个错误integer division or modulo by zero也就是说Python解释器发现你试图除以0或者试图用0取模。
这里提示的ZeroDivisionError就是一个异常,我们可以在后面捕获这个异常,然后进行一些处理。如果不捕获这个异常的话,程序运行到这里,异常就会直接抛出到用户界面,中断程序的运行。
0X01 自己放出一个异常
我们可以用raise抛出一个自己的异常,这样我们可以在调试程序的时候判断到底出了什么错误,通过抛出的异常信息就可以判断。
上面这段代码只是简单地输入name和age两个变量,合法的话就输出出来。我们这里运行一下试试
我们可以用这种方式在自己的代码中抛出异常,用来做中间值检测,防止中间的数据出现意外导致一些不可思议的后果。
0X02 捕获异常…