linux入门系列19--数据库管理系统(DBMS)之MariaDB

2023-11-20

前面讲完Linux下一系列服务的配置和使用之后,本文简单介绍一款数据库管理系统(MySQL的兄弟)MariaDB。

如果你有MySQL或其他数据的使用经验,MariaDB使用起来将非常轻松。

本文讲解Centos7默认的数据MariaDB,由于是入门系列文章因此不会深入讲解,后面有机会在单独深入。

一、MariaDB产生背景

数据处理是软件的核心,软件的本质就是处理数据,包括输入输入、处理、输出。目前数据库主要分为关系型数据库和非关系型数据,关系型数据库主要有:SQLServer、Oracle、MySQL、MariaDB等;非关系型数据库(NoSQL)包含:Redis、HBase、MongoDB等等。

相信大家都听过或者用过MySQL数据库,它是一款市场占有率非常高的数据库管理系统,技术成熟、配置步骤相对简单,而且具有良好的可扩展性。

但是由于Oracle公司在2009年收购了MySQL的母公司Sun,因此MySQL项目也随之纳入了Oracle。被收购后,虽然MySQL仍然保持着开源软件的身份,但是却申请了多项商业专利,这就不禁让人担心其会被逐渐商业化。

一方面,MySQL本身是一款开源软件,是全球极客、程序员等技术高手在开源社区的大旗下的公共智慧结晶,自己的劳动成果被其他公司商业化自然也伤了一大批开源工作者的心,因此由MySQL项目创始者重新研发了一款名为MariaDB的全新数据库管理系统。

另一方面,各大公司都会存在竞争或利益关系,MySQL被收购后,谷歌、维基百科等公司决定将MySQL数据库上的业务转移到 MariaDB 数据库,红帽公司也决定在 RHEL 7、CentOS 7 以及最新的 Fedora 系统中,将 MariaDB 作为默认的数据库管理系统。

这样一样,MariaDB也因此快速占据了市场。MariaDB当前由开源社区进行维护,是MySQL的分支产品,而且几乎完全兼容 MySQL,并增加了一些新的特性,例如对微秒级别的 支持、线程池、子查询优化、进程报告等。

支持windows、linux等不同的操作系统,本文演示在Centos7下进行安装。

官网:https://mariadb.org/

二、MariaDB安装

2.1 安装MariaDB

通过挂载光盘或yum仓库安装MariaDB

[root@mariadb ~]# rpm -q mariadb
package mariadb is not installed
[root@mariadb ~]# yum install mariadb mariadb-server
Loaded plugins: fastestmirror, langpacks
...省略部分内容
Dependency Updated:
  mariadb-libs.x86_64 1:5.5.64-1.el7
Complete!
[root@mariadb ~]# rpm -q mariadb
mariadb-5.5.64-1.el7.x86_64
[root@mariadb ~]# rpm -q mariadb-server
mariadb-server-5.5.64-1.el7.x86_64
[root@mariadb ~]# systemctl start mariadb
[root@mariadb ~]# systemctl enable mariadb
ln -s '/usr/lib/systemd/system/mariadb.service' '/etc/systemd/system/multi-user.target.wants/mariadb.service'
[root@mariadb ~]# 

安装完成后,重启并设为开机启动,在正式使用之前先按下边步骤进行初始化

2.2 初始化MariaDB

为了确保数据库的安全性和正常运转,需要通过mysql_secure_installation对数据库程序进行初始化操作。

初始化的工作主要用于设置root的密码以及删除一些无关的账户信息,根据提示一路按y即可完成,主要步骤如下图所示:

[root@mariadb ~]# mysql_secure_installation 

在这里插入图片描述

注意:上边设置的root密码为MariaDB数据的root账户的密码,而非Centos系统的root账户和密码。

2.3 测试安装是否成功

在虚拟机中通过mysql命令登录,并用show databases命令查看默认有哪些数据库,如果能查看说明安装成功并能正常连接。

[root@mariadb ~]# mysql -u root -p          
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 11
Server version: 5.5.64-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)

MariaDB [(none)]> exit
Bye
[root@mariadb ~]#

mysql命令中,-u参数用来指定以root管理员的身份登录,而-p参数用来验证该用户在数据库中的密码值。

注意事项:

(1)MariaDB默认端口为3306,在防火墙中服务名称为mysql。因此MariaDB和MySQL不要同时使用。

(2)本例中直接禁止了root的远程登录,但实际上有可能需要远程访问数据,这可以在上边的初始化操作中设置允许root管理员远程访问;然后在设置防火墙,使其放行对数据库服务的访问请求。

[root@mariadb ~]# firewall-cmd --permanent --add-service=mysql
success
[root@mariadb ~]# firewall-cmd --reload 
success
2.4 修改密码

通过set密码可以修改root用户的密码,假设密码修改为888888

MariaDB [(none)]> set password=password('888888');
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> exit
Bye
[root@mariadb ~]# mysql -uroot -p
Enter password: 输入新密码登录

修改密码后,退出再登录就只能用刚设置的新密码登录了。

三、MariaDB账户管理

为了保障数据库系统的安全性,以及让其他用户协同管理数据库,生产环境一般不用root管理员账户。一般是以在MariaDB数据库管理系统中创建多个专用的数据库管理账户,然后再分配合理的权限,以满足工作需求。

3.1 添加账户

添加账户的语句为:“CREATE USER 用户名@主机名 IDENTIFIED BY ‘密码’; ”

MariaDB [(none)]> create user heima@localhost identified by 'heima';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> use mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [mysql]> select host,user,password from user where user='heima';
+-----------+-------+-------------------------------------------+
| host      | user  | password                                  |
+-----------+-------+-------------------------------------------+
| localhost | heima | *58613E96F5518C264EA39AA2A57D3DFEB191E343 |
+-----------+-------+-------------------------------------------+
1 row in set (0.00 sec)
MariaDB [mysql]>exit

创建用户后,存储在mysql数据库的user表中,可以进行查看。

3.2 账户授权管理

通过上边的方式创建的heima用户仅仅是一个普通用户,没有数据库的任何操作权限。

[root@mariadb ~]# mysql -uheima -pheima
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 15
Server version: 5.5.64-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
+--------------------+
1 row in set (0.00 sec)
MariaDB [(none)]> exit
Bye
[root@mariadb ~]# 

我们用heima账户登录,通过查询看不到mysql数据库,说明该用户连数据库查看的权限都没有。

3.2.1 账号授权

(1)grant授权语句

授权使用grant语句,语法格式为:***“grant 权限 on 数据库.表名称 to 账户名@主机名”。***

举几个例子:

  • 对某个特定数据库中的特定表单给予授权

GRANT 权限ON 数据库.表单名称TO 账户名@主机名

  • 对某个特定数据库中的所有表单给予授权

GRANT 权限 ON 数据库.*TO 账户名@主机名

  • 对所有数据库及所有表单给予授权

GRANT 权限 ON*.*TO 账户名@主机名

  • 对某个数据库中的所有表单给予多个授权

GRANT 权限1,权限2 ON 数据库.*TO 账户名@主机 名

  • 对所有数据库及所有表单给予全部授权

GRANT ALL PRIVILEGES ON *.*TO 账户名@主机

(2)对heima账户授权

用root管理员账户登录,通过grant语句给heima用户对msyql数据库user表的增删改查的授权:

MariaDB [(none)]> show grants for heima@localhost;
+------------------------------+
| Grants for heima@localhost   |
+------------------------------+
| GRANT USAGE ON *.* TO 'heima'@'localhost' IDENTIFIED BY PASSWORD '*58613E96F5518C264EA39AA2A57D3DFEB191E343' |
+------------------------------+
1 row in set (0.01 sec)
MariaDB [(none)]> grant select,update,delete,insert on mysql.user to heima@localhost;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> show grants for heima@localhost;               +-----------------+
| Grants for heima@localhost     |
+----------------------------+
| GRANT USAGE ON *.* TO 'heima'@'localhost' IDENTIFIED BY PASSWORD '*58613E96F5518C264EA39AA2A57D3DFEB191E343' |
| GRANT SELECT, INSERT, UPDATE, DELETE ON `mysql`.`user` TO 'heima'@'localhost'    |
+-------------------------------+
2 rows in set (0.00 sec)
MariaDB [(none)]> 

通过show grants命令可以看到对用户授予了哪些权限。

授权完成后,切换到heima用户,再次查看数据库就可以看到刚才授权的mysql数据库了,并且可以操作mysql数据库中user表的内容

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
+--------------------+
2 rows in set (0.01 sec)
MariaDB [(none)]> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [mysql]> show tables;
+-----------------+
| Tables_in_mysql |
+-----------------+
| user            |
+-----------------+
1 row in set (0.00 sec)
MariaDB [mysql]> select host,user,password from user where user='heima';
+-----------+-------+-------------------------------------------+
| host      | user  | password                                  |
+-----------+-------+-------------------------------------------+
| localhost | heima | *58613E96F5518C264EA39AA2A57D3DFEB191E343 |
+-----------+-------+-------------------------------------------+
1 row in set (0.00 sec)
MariaDB [mysql]> exit
Bye
[root@mariadb ~]# 
3.2.2 移除账户权限

当员工离职或其他原因需要移除账户权限时,可以使用root管理员登录,通过revoke语句进行移除

MariaDB [(none)]> revoke select,update,delete,insert on mysql.user from heima@localhost;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> show grants for heima@localhost;
+------------+
| Grants for heima@localhost  |
+------------+
| GRANT USAGE ON *.* TO 'heima'@'localhost' IDENTIFIED BY PASSWORD '*58613E96F5518C264EA39AA2A57D3DFEB191E343' |
+-------------+
1 row in set (0.00 sec)
MariaDB [(none)]> exit

四、MariaDB数据库和表管理

4.0 知识储备

简单列举几个最基础的命令

  • 创建数据库

CREATE DATABASE 数据库名称 (大小写不敏感,大小写都是可以的)

  • 描述表

DESCRIBE 表单名称

  • 更新表单中的数据

UPDATE 表单名称 SET attribute=新值 WHERE attribute>原始 值

  • 指定使用的数据库

USE 数据库名称

  • 显示当前已有的数据库

SHOW databases

  • 显示当前数据库中的表

SHOW tables

  • 从表单中选中某个记录值

SELECT * FROM 表单名称

  • 从表单中删除某个记录值

DELETE FROM 表单名 WHERE attribute=值

4.1 创建数据库

创建一个名为 heima的数据库

MariaDB [(none)]> create database heima;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> show databases;       
+--------------------+
| Database           |
+--------------------+
| information_schema |
| heima              |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)
MariaDB [(none)]>
4.2 创建数据库表

切换到刚才创建的heima数据库,在其中创建user表,包含姓名和年龄两个字段

MariaDB [(none)]> use heima
Database changed
MariaDB [heima]> create table user(name char(15),age int);
Query OK, 0 rows affected (0.01 sec)
MariaDB [heima]> show tables;
+-----------------+
| Tables_in_heima |
+-----------------+
| user            |
+-----------------+
1 row in set (0.00 sec)
MariaDB [heima]> describe user;
+-------+----------+------+-----+---------+-------+
| Field | Type     | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| name  | char(15) | YES  |     | NULL    |       |
| age   | int(11)  | YES  |     | NULL    |       |
+-------+----------+------+-----+---------+-------+
2 rows in set (0.00 sec)
MariaDB [heima]> 

五、MariaDB表数据管理

数据库表中数据的查找分为CRUD,也就是通常所说的增、删、改、查。

5.1 添加数据

使用insert into语句向heima数据库的user表中插入数据

MariaDB [heima]> insert into user(name,age) values('heima',18);
Query OK, 1 row affected (0.00 sec)
MariaDB [heima]> select * from user;                           
+-------+------+
| name  | age  |
+-------+------+
| heima |   18 |
+-------+------+
1 row in set (0.00 sec)
MariaDB [heima]> 
5.2 查询数据

查询使用select语句,并可以结合where、group by、order by等语句进行综合查询。

在user表插入一条数据,然后根据年龄查询小于1岁的用户

MariaDB [heima]> insert into user(name,age) values("leo",1);
Query OK, 1 row affected (0.00 sec)
MariaDB [heima]> select * from user where age<2;
+------+------+
| name | age  |
+------+------+
| leo  |    1 |
+------+------+
1 row in set (0.00 sec)
MariaDB [heima]>
5.3 修改数据

修改数据使用update语句,在user表中将heima用户的年龄修改为19岁

MariaDB [heima]> update user set age=19 where name='heima';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0
MariaDB [heima]> select * from user;
+-------+------+
| name  | age  |
+-------+------+
| heima |   19 |
+-------+------+
1 row in set (0.00 sec)
MariaDB [heima]> 
5.4 删除数据

删除数据使用delete语句,以下分别演示,删除用户名为leo的用户和删除所有用户

MariaDB [heima]> delete from user where name='leo';
Query OK, 1 row affected (0.00 sec)
MariaDB [heima]> select * from user;               
+-------+------+
| name  | age  |
+-------+------+
| heima |   19 |
+-------+------+
1 row in set (0.00 sec)
MariaDB [heima]> delete from user;
Query OK, 1 row affected (0.00 sec)
MariaDB [heima]> select * from user;
Empty set (0.00 sec)
MariaDB [heima]> 

六、MariaDB数据库备份及恢复

为了保证数据的安全性需要定期备份数据库,一旦出现问题可以通过备份文件进行恢复。

6.1 数据库备份

备份数据库数据使用mysqldump命令,格式为“mysqldump [参数] [数据库名称]”。参数与mysql命令基本相同,-u参数用于定义登录数据库的账户名称,-p参数代表密码提示符。

下面将 之前创建的heima数据库中的内容导出成一个文件,并保存到root管理员的家目录中:

[root@mariadb ~]# mysqldump -u root -p heima> /root/heima-db-back.dump  
Enter password: 
[root@mariadb ~]# ll heima-db-back.dump 
-rw-r--r--. 1 root root 1794 Feb 13 12:48 heima-db-back.dump
[root@mariadb ~]# pwd
/root
[root@mariadb ~]#

此时模拟数据库故障,直接用root登录MariaDB数据,然后删除整个heima数据库

MariaDB [(none)]> drop database heima;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)
MariaDB [(none)]> exit
Bye
[root@mariadb ~]# 
6.2 数据库恢复

要恢复数据库,先用root登录数据库,再次建一个空的heima数据库

MariaDB [(none)]> create database heima;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| heima              |
| mysql              |
| performance_schema |
+--------------------+
4 rows in set (0.00 sec)
MariaDB [(none)]> exit
Bye
[root@mariadb ~]# 

然后再用mysq重定向将刚备份的数据库文件导入mysql命令即可恢复

[root@mariadb ~]# mysql -uroot -p heima</root/heima-db-back.dump
Enter password: 
[root@mariadb ~]# mysql -uroot -p888888
...省略部分内容
MariaDB [(none)]> use heima;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
MariaDB [heima]> show tables;
+-----------------+
| Tables_in_heima |
+-----------------+
| user            |
+-----------------+
1 row in set (0.00 sec)
MariaDB [heima]>exit

这样就完成了数据表中内容的恢复。

下一篇文章将是入门系列的最后一篇文章,综合讲解LNMP环境搭建动态WEB网站。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux入门系列19--数据库管理系统(DBMS)之MariaDB 的相关文章

  • 在 linux shell 中执行程序时得到“dquote>”

    当我在 Linux shell 中执行脚本时 我得到以下输出 dquote gt 这是什么意思 这意味着您执行了一行仅包含一个双引号字符的代码 如下所示 echo Hello shell 正在等待其他报价
  • 如何判断全屏应用程序是否正在运行?

    python 是否可以判断 linux 上的全屏应用程序是否正在运行 我感觉使用 Xlib 可能是可行的 但我还没有找到方法 EDIT 我所说的全屏是指整个屏幕 除了应用程序之外 没有其他任何内容 例如全屏游戏 如果您有兴趣在支持下运行所有
  • 访问附加到 ELF 二进制文件的数据

    我有一个静态 ELF 二进制文件 它从 zip 文件中读取数据 为了简化分发 我想将 zip 文件附加到二进制文件中 如下所示 cat mydata zip gt gt mybinary 我知道这样做不会损坏 mybinary 但我不知道如
  • 如何从 USB 加载 LUKS 密码,然后返回键盘?

    我想设置一台具有全磁盘加密功能的无头 Linux Debian Wheezy PC 能够使用 USB 驱动器或通过键盘输入密码来解锁磁盘 我的起点是使用 Debian 安装程序中基本的整个磁盘加密选项进行全新安装 该安装程序将 boot 之
  • 反馈两个进程的stdin和stdout

    我有两个进程通过标准输入和标准输出相互连接 假设我有进程 A 和进程 B B 的标准输出需要输入到 A 的标准输入中 A 的标准输出需要输入到进程 B 的标准输出中 是否有一种简单的方法可以用简单的命令来表达这种关系 或者是否有一个基本的
  • 安装Python时出错

    击中后 make install 我收到以下错误 usr bin install cannot create regular file usr local bin python2 6 Permission denied make altbi
  • 计算以某个单词开头的行数

    如何计算文本文件中以某个单词开头的行数 我不想使用sed进而wc l 有更好的解决办法吗 只需 grep 你的单词 然后使用 wc l 来计算行数 就像这样 grep your word path to file wc l
  • 如何在Linux shell脚本中将文本文件中的两行合并到同一行中

    我使用 wget 命令从 Nagios 下载了它的 html 文件 然后使用以下代码将该 html 文件转换为 Textfile html2text width 180 file html gt a txt 然后我剪切了前 10 行 因为我
  • 包名中的“dev”后缀?

    使用 apt get 时 我看到一些软件包的名称后面有一个 dev 后缀 libreadline5 libreadline dev zlib1g zlib1g dev 这些到底是什么 我应该安装它们吗 你需要这些编译并链接因为它们提供了要链
  • 当非特权用户运行 C/asm 程序时,会对 Linux 造成什么危害?

    我一直在考虑一种场景 让用户 可以是任何人 可能有恶意 提交在 Linux PC 我们称之为基准节点 上运行的代码 目标是为单线程例程创建一种自动化基准测试环境 假设一个网站向代理发布了一些代码 该代理将此代码交给基准节点 而基准节点仅与代
  • elf .rel.text 部分中 R_386_32/R_386_PC32 的含义

    为了理解重定位的概念 我编写了一个简单的 chk c 程序 如下所示 1 include
  • 删除损坏的链接 Unix

    我想删除损坏的链接 但在此之前我想确认目录中是否存在链接文件 我们来调用一下链接A if a A then print ya A is ther fi But if A链接已损坏 那么我该如何检查 find L type l找到损坏的符号链
  • 如何在生产环境中运行 spring boot 可执行 jar?

    Spring Boot 的首选部署方法是通过内部包含 tomcat 的可执行 jar 文件 它是从一个简单的开始java jar myapp jar 现在 我想将该 jar 部署到 EC2 上的 Linux 服务器上 我是否遗漏了某些内容
  • x86-64 Linux 中不再允许使用 32 位绝对地址?

    64 位 Linux 默认使用小内存模型 将所有代码和静态数据置于 2GB 地址限制以下 这确保您可以使用 32 位绝对地址 旧版本的 gcc 对静态数组使用 32 位绝对地址 以便节省相对地址计算的额外指令 然而 这不再有效 如果我尝试在
  • find 命令的“exec”功能可以在后台启动程序吗?

    我想做这样的事情 find iname Advanced Linux Program exec kpdf 可能的 还有其他类似的方法吗 首先 它不会像你输入的那样工作 因为 shell 会将其解释为 find iname Advanced
  • Alsa:如何在 2 个输出上复制流并保存系统配置?

    我的声卡是 Audigy SE SB0570 我想不仅在扬声器上而且在耳机上同时播放相同的立体声流 我在空的 asoundrc 上尝试这个配置 pcm quad type multi slaves a pcm hw 0 0 green ho
  • Gnu 时间和格式化输出

    我想使用 gnu time 来测量一些小 c 程序的运行时间 人 中写道 f FORMAT format FORMAT Use FORMAT as the format string that controls the output of
  • 在 Linux 上的 makefile 和 Makefile 之间进行选择

    我想在一个目录中同时使用 Makefile 和 makefile 进行 make 默认情况下 它将执行makefile 我可以选择执行 Makefile 吗 提前致谢 最简单的选择是使用 f make f Makefile From man
  • 使用“touch”创建目录? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 1 在 A 目录中 find type f gt a txt 2 在 B 目录中 cat a txt while read FILENAMES do
  • Ruby - 在 tmp/pids/thin.pid 中找不到 PID (Thin::PidFileNotFound)

    我试图开始精简我的应用程序 但随后pid无法生成 thin C var www project path current config myproject testing yml start 现在我无法阻止它 因为没有 pid thin C

随机推荐

  • MATLAB实现遗传算法求解n维变量函数的最小值问题

    一 问题简述 本文以遗传算法求解30维变量函数的最小值问题举例 式中 且 二 遗传算法概述 遗传算法 genetic algorithm GA 是一种仿效生物界中 物竞天择 适者生存 演化法则的进化算法 将问题参数编码为染色体 利用迭代的方
  • cv2.minAreaRect()

    功能 求出在点集下的最小面积矩形 输入 格式 points array shape n 1 2 解释 其中points是点集 数据类型为ndarray array x1 y1 x2 y2 xn yn 输出 格式 rect tuple x y
  • Centos7 安装 postgreSQL

    谷明科技 专注于大数据和人工智能领域的创新者 PostgreSQL 介绍 PostgreSQL 是一个开源且强大的关系型数据库 且具有多平台扩展能力 不同于传统的关系型数据库 例如mysql sqlserver等 PostgreSQL使用S
  • this调用本类的其他构造器

    Student类 package Java project 1 public class Student private String name private String schoolName public Student public
  • javascript的函数中this指向判断

    前言 最近在写 React 项目 然后补习了下 es6 的 class 发现 实例方法被赋值后 this 指向 undefined 这里对 this 指向作一次总结 一 通过 函数的 调用方式 来判断 this 指向 1 函数名 通过 函数
  • Zero-ETL、大模型和数据工程的未来

    编者按 本文探讨了数据工程领域的未来趋势和挑战 以及其不断变化 甚至经常出现 重塑 的特点 在数据工程领域 大数据的性能 容量提升总是有一定的上限 每一次进步都会带来一定的技术提升 从而提高上限 但是很快我们就能到达这个上限 直到下一次技术
  • 【Bugfix】flutter GetX 使用 Obx 监听 GetxController 时,页面退出 GetxController 无法销毁

    背景 我的页面数据全来自 GetxController 每次进入时需要重置数据 但 GetX 似乎把 GetxController 保留了 下次在进入页面直接复用了之前的数据 导致数据混乱 尝试 一下调用均不能销毁 GetxControll
  • 设置windos电脑开机自动启动chrome浏览器,并且打开指定网页

    需求 web项目设置windos电脑开机自动启动chrome浏览器 打开指定网页地址 并设置为全屏显示 解决 使用windos的bat脚本 设置为开机自启动 代码如下 echo off cd d dp0 title Chrome taskl
  • Unity中UI组件

    一 Canvers 画布组件 Canvers下面是添加Button和Image组件 Rect Transform 1 Position 坐标位置 2 Width Height 高宽尺寸 3 Anchors 锚点 4 Pivot中心点 即UI
  • VRRP和DHCP配置

    1 VRRP术语 2 VRRP工作过程 3 DHCP的优势 4 DHCP的工作原理 1 VRRP术语 VRRP 也即虚拟路由器冗余协议 利用VRRP 一组路由器 同一个LAN中的接口 协同工作 但只有一个处于Master状态 处于该状态的路
  • 7-3 删除字符 (30 分)

    这位更是重量级 输入一个字符串 str 再输入要删除字符 c 大小写不区分 将字符串 str 中出现的所有字符 c 删除 提示 去掉两端的空格 输入格式 在第一行中输入一行字符 在第二行输入待删除的字符 输出格式 在一行中输出删除后的字符串
  • java中String作为参数传递终极解决

    今天我遇到一个问题就是string的传值问题 它虽然是一个引用数据类型 但是却和基本数据类型一样无法被改变 我看到网上的很多解释都很离谱 比如说很多解释说String要看成和Integer一样的包装类 看成 是char 的包装类 所以和其一
  • 快速开始一个 CakePHP project 的 基础/步骤

    请参考 CakePhP cookbook4 0 好的这就是本文和全部与核心 你可以跳出去了 好 正经一点 回来 1 下载xampp php集成环境 2 下载cakephp 框架 查看cookbook中的installation a 若用的x
  • 引进包类

    使用Support Library 支持库 Using the Support Library 负责人 River 完成时间 7月18日 原文链接 http developer android com training basics fra
  • (六)Spring Cloud Alibaba Sentinel(含案例源码、案例解析及软件)

    案例源码gitee地址 https gitee com BanSheng spring cloud alibaba examples tree master sentinel example client Spring Cloud Alib
  • 人工智能技术应用中机器学习里的6种偏差

    在人工智能的学习过程中 偏差会以多种不同的形式出现在机器学习中 Bias的定义 Bias 对某人或某一群体的倾向或偏见 尤指被认为不公平的方式 Bias被解释为偏差也可解释为偏见 其定义包括 不公平 一词 偏差几乎可以在每个阶段影响机器学习
  • msm8953-配置I2C 速率

    前言 本文记录调试高通平台某I2C 器件通讯出现异常 尝试修改I2C 时钟速率时所做的记录 平台 MSM8953 系统 Android 9 0 分类 I2C CLK 结论 先说结论 经过分析以及验证 平台支持的I2C特性如下 默认速度 10
  • eclipse json转为java类

    1 安装GsonFormat插件 插件地址 https github com wenxunyu GsonFormat 安装步骤在上面的地址中有 2 注意 直接放在dropins根目录下 不要放在子文件夹下 否则报错 不能正常使用插件
  • Java知识大全 - 五、Java高级编程

    1 异常和错误处理 在 Java 中 异常用于处理程序执行期间可能发生的错误和其他异常情况 异常允许开发人员以结构化和一致的方式处理错误 从而使代码更加健壮和可靠 发生错误时 Java 会创建一个异常对象 其中包含有关错误的信息 例如错误的
  • linux入门系列19--数据库管理系统(DBMS)之MariaDB

    前面讲完Linux下一系列服务的配置和使用之后 本文简单介绍一款数据库管理系统 MySQL的兄弟 MariaDB 如果你有MySQL或其他数据的使用经验 MariaDB使用起来将非常轻松 本文讲解Centos7默认的数据MariaDB 由于