MySQL5.6與MySQL5.7安裝的區別

来源:https://www.cnblogs.com/1naonao/archive/2019/11/04/11795364.html
-Advertisement-
Play Games

一.MySQL5.6與MySQL5.7安裝的區別 1、cmake的時候加入了boost 下載boost.org 2、初始化時 cd /application/mysql/bin/mysql 使用mysqld initialize 替代mysql_install_db,其它參數沒有變化: user= ...


一.MySQL5.6與MySQL5.7安裝的區別

  • 1、cmake的時候加入了boost 下載boost.org
  • 2、初始化時 cd /application/mysql/bin/mysql 使用mysqld --initialize 替代mysql_install_db,其它參數沒有變化:--user= --basedir= --datadir=
  • 3、--initialize會生成一個臨時密碼
  • 4、還可以用另外一個參數--initialize-insecure (加上生不成密碼)

mysql 5.7使用弱密碼

validate_password_length 8 # 密碼的最小長度,此處為8。
validate_password_mixed_case_count 1 # 至少要包含小寫或大寫字母的個數,此處為1。
validate_password_number_count 1 # 至少要包含的數字的個數,此處為1。
validate_password_policy MEDIUM # 強度等級,其中其值可設置為0、1、2。分別對應:
【0/LOW】:只檢查長度。
【1/MEDIUM】:在0等級的基礎上多檢查數字、大小寫、特殊字元。
【2/STRONG】:在1等級的基礎上多檢查特殊字元字典文件,此處為1。
validate_password_special_char_count 1 # 至少要包含的個數字元的個數,此處為1。
[root@db02 mysql-5.7.20]# yum install -y gcc gcc-c++ automake autoconf
[root@db02 mysql-5.7.20]# yum install make cmake bison-devel ncurses-devel libaio-devel
[root@db02 mysql-5.7.20]#
wget httpss://dl.bintray.com/boostorg/release/1.65.1/source/boost_1_59_0.tar.gz
#登錄boost.org下載也可以
[root@db02 mysql-5.7.20]# tar xf boost_1_59_0.tar.gz -C /usr/local/
[root@db02 mysql-5.7.20]#
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.7.20 \
-DMYSQL_DATADIR=/application/mysql-5.7.20/data \
-DMYSQL_UNIX_ADDR=/application/mysql-5.7.20/tmp/mysql.sock \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost_1_59_0 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_ZLIB=bundled \
-DWITH_SSL=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_DEBUG=0 

生成密碼位置不一樣

select user,host passwd from mysql.user

查看有沒有密碼

5.6

mysql 5.7

二.MySQL用戶許可權管理

  • 1.MySQL用戶基礎操作

Linux用戶的作用:

  • 1)登陸系統
  • 2)管理系統文件

Linux用戶管理:

  • 1)創建用戶:useradd adduser
  • 2)刪除用戶:userdel
  • 3)修改用戶:usermod

MySQL用戶的作用:

  • 1)登陸MySQL資料庫
  • 2)管理資料庫對象

MySQL用戶管理:

  • 1)創建用戶:create user
#創建用戶
create user zls@'%';
#創建用戶同時給密碼(5.7)如果用戶不存在沒法使用grant
create user qls@'%' identified by '123';
grant all on *.* to qls@'%';
  • 2)刪除用戶:delete user drop user (user這裡是一個命令,不是一個用戶)
mysql> drop user root@'db02';
Query OK, 0 rows affected (0.00 sec)
mysql> drop user ''@'db02';
Query OK, 0 rows affected (0.00 sec)
  • )修改用戶:update alter grant
mysql> update mysql.user set password=PASSWORD('123') where user='root' and
host='localhost';
#進入庫,在操作

用戶的定義:

  • 1) username@’主機域’

    root@'%' select

    root@'%' 超級用戶

    root@'172.0.0.0' 超級用戶

  • 2)主機域:可以理解為是MySQL登陸的白名單

  • 3)主機域格式:

    • ’10.0.0.51’
    • ’10.0.0.5%’
    • ’10.0.0.%’
    • ’10.0.%.%’
    • ’10.%.%.%’
    • ‘%’
    • ‘db01’
    • ’10.0.0.51/255.255.255.0’
    • ’10.0.0.0/24 不能用,不識別

用戶管理實戰

剛裝完MySQL資料庫該做的事情

  • 1、設定初始密碼(root@localhost)
[root@db02 mysql-5.7.20]# mysqladmin -uroot -p password 'oldboy123'
  • 2、修改密碼
  • 3、使用密碼登陸
[root@db02 mysql-5.7.20]# mysql -uroot -p123
  • 4、清理無用的用戶

誤刪除了所有用戶

#關閉資料庫
[root@db02 mysql-5.7.20]# /etc/init.d/mysqld stop #通用
#啟動資料庫
[root@db02 mysql-5.7.20]# mysqld_safe --skip-grant-tables --skip-networking &
#跳過授權表,跳過網路,只能sockect連接,不能tcp\ip連接
#使用mysql庫
mysql> use mysql

#錯誤方法1、創建root用戶
mysql> create user root@’localhost’;
#錯誤方法2、創建root用戶
mysql> insert into user(user,host,password) values('root','10.0.0.55',PASSWORD('123'));
#錯誤方法
mysql> insert into user(user,host,password,ssl_cipher,x509_issuer,x509_subject)
values('root','localhost',PASSWORD('123'),'null','null','null');
#沒有許可權,表中沒有許可權
#正確方法創建root用戶
mysql>  insert into mysql.user values ('localhohost','root',PASSWORD('123'),
-> 'Y',
-> 'Y',
-> 'Y',
-> 'Y',
-> 'Y',
-> 'Y',
-> 'Y',
-> 'Y',
-> 'Y',
-> 'Y',
-> 'Y',
-> 'Y',
-> 'Y',
-> 'Y',
-> 'Y',
-> 'Y',
-> 'Y',
-> 'Y',
-> 'Y',
-> 'Y',
-> 'Y',
-> 'Y',
-> 'Y',
-> 'Y',
-> 'Y',
-> 'Y',
-> 'Y',
-> 'Y',
-> 'Y',
-> '',
-> '',
-> '',
-> '',0,0,0,0,'mysql_native_password','','N');
#重啟mysqld
/etc/init.d/mysqld start

方法二:

#關閉資料庫
[root@db02 mysql-5.7.20]# /etc/init.d/mysqld stop #通用
#啟動資料庫
[root@db02 mysql-5.7.20]# mysqld_safe --skip-grant-tables --skip-networking & 

mysql>flush privileges;#刷新授權表,update 修改密碼時才能生效,危險
mysql> all on *.* to root@'127.0.0.1' identified by '1' 
with grant option;#超級用戶
#5.7版本,如果用戶不存在不能使用grant

方法三:

#導庫,在另一臺伺服器上導出系統庫
mysqldump -uroot -p1 -B mysql >/tmp/mysql.sql

方法四:(不適合生產環境)

#初始化
cd /application/mysql/
rm-fr data/ #註意data目錄不要刪錯

忘記root密碼

#關閉資料庫
[root@db02 mysql-5.7.20]# /etc/init.d/mysqld stop
#啟動資料庫
[root@db02 mysql-5.7.20]# mysqld_safe --skip-grant-tables --skip-networking &

#1.update修改密碼
update mysql.user set password=PASSWORD('123') where user='root' and host='localhost';
mysql> flush privileges;
#2.set
mysql> set password=PASSWORD('1');
#3.grant
mysql> grant all on *.* to root@'localhost' identified by '2';
#4.mysqladmin
[root@db01 ~]# mysqladmin -uroot -p2 password '123'
#5.alter
  • 2.用戶管理及許可權管理_

1)創建用戶

mysql> create user oldboy@'10.0.0.%' identified by '123';

2)查看用戶

mysql>  select user,host from mysql.user;

3)刪除用戶

mysql>  drop user oldboy@‘10.0.0.%’;#drop user sql語句

4)修改密碼

select database();#pwd
desc mysql.user;查看表許可權
#插入表內容 insert into user(user,host.password) values()

#進入庫裡面修改密碼,或者使用絕對路徑

mysql> set password
mysql> update user set password=PASSWORD('oldboy123') where user='root' and host='localhost';#mysql.user
mysql> grant all privileges on *.* to oldboy@’10.0.0.%’ identified by ‘123’;

5)用戶許可權介紹

MySQL的許可權定義:
作用對象:庫、表
許可權

INSERT,SELECT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN,  PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE

給開發開許可權

grant INSERT,SELECT, UPDATE, DELETE on *.* to dev@'xxx';

許可權最小化,最小級別不是表級別,是列級別

grant select on mysql.user.user to dev@'10.0.0.5%' identified by '123';
use vip;
use tables;

主機域:10.0.0.5% 可以連接:10.0.0.50-59 10.0.0.5

脫敏:脫離敏感信息

grant select(user,host) on wzry.user to no_vip@'%' identified by '123';

資料庫集群:10.0.0.51 52 53 54

歸屬
每次設定只能有一個屬主,沒有屬組或其他用戶的概念

grant all privileges on *.* to oldboy@’10.0.0.%’ identified by ‘123’;
        許可權          作用對象        歸屬          密碼

作用對象分解

. [當前MySQL實例中所有庫下的所有表]
wordpress.* [當前MySQL實例中wordpress庫中所有表(單庫級別)]
wordpress.user [當前MySQL實例中wordpress庫中的user表(單表級別)]

思考下麵場景:
開發:你把root用戶給我唄?

你:emmmmm........ SO?
img


實驗思考問題:

#創建wordpress資料庫
create database wordpress;
#使用wordpress庫
use wordpress;
#創建t1、t2表
create table t1 (id int);
create table t2 (id int);
#創建blog庫
create database blog;
#使用blog庫
use blog;
#創建t1表
create table tb1 (id int);

授權:

1、grant select on *.* to wordpress@’10.0.0.5%’ identified by ‘123’;
2、grant insert,delete,update on wordpress.* to wordpress@’10.0.0.5%’ identified by ‘123’;
3、grant all on wordpress.t1 to wordpress@’10.0.0.5%’ identified by ‘123’;

問:
一個客戶端程式使用wordpress用戶登陸到10.0.0.51的MySQL後,

  • 1、對t1表的管理能力?
  • 2、對t2表的管理能力?
  • 3、對tb1表的管理能力?

解:

  • 1、同時滿足1,2,3,最終許可權是1+2+3
  • 2、同時滿足了1和2兩個授權,最終許可權是1+2
  • 3、只滿足1授權,所以只能select

但列級別是最小級別

create database wordpress;
use wordpress;
create table t1 (id int);
create table t2 (id int);
create database blog;
use blog;
create table tb1 (id int);
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| blog |
| wordpress |
+--------------------+
mysql> show tables from wordpress;
+---------------------+
| Tables_in_wordpress |
+---------------------+
| t1 |
| t2 |
+---------------------+
mysql> show tables from blog;
+----------------+
| Tables_in_blog |
+----------------+
| tb1 |
+----------------+
1、grant select on *.* to wordpress@’10.0.0.5%’ identified by ‘123’;
針對wordpress@'10.0.0.5%' 授權 所有庫所有表 查詢許可權 密碼是 123
2、grant insert,delete,update on wordpress.* to wordpress@’10.0.0.5%’ identified by ‘123’;
針對wordpress@'10.0.0.5%' 授權 插入、刪除、修改 wordpress庫中的所有表 密碼是 123
3、grant all on wordpress.t1 to wordpress@’10.0.0.5%’ identified by ‘123’;
針對wordpress@'10.0.0.5%' 授權所有許可權 wordpress庫中的t1表 密碼是123

一個客戶端程式使用wordpress用戶登錄到10.0.0.51的mysql後

[root@db02 ~]# mysql -uwordpress -p123 -h10.0.0.51

1、對t1(wordpress)表的管理能力? t1:select ,insert,delete,update all
所有許可權
2、對t2(wordpress)表的管理能力?t2:select,insert,delete,update
insert update delete select
3、對tb1表的管理能力?
只有select

結論:

1.如果在不同級別都包含某個表的管理能力時,許可權是相加關係

2.但是我們不推薦在多級別定義重覆許可權

3.最常用的許可權設定方式是單庫級別授權,即:wordpres.*[單庫級別]

在企業中,開發讓你給他開一個MySQL的用戶:

grant insert,delete,update on wordpress.* to wordpress@’ identified by ‘123’;

1.許可權是什麼?insert,delete,update

2.哪個庫,哪幾張表?哪些列? wordpress.*

3.你從哪裡連接?‘10.0.0.5%’

4.用戶名和密碼是什麼?

5.發郵件,走流程

三.MySQL連接管理

1.連接工具

  • 1)MySQL自帶的連接工具

mysql

常見的特定於客戶機的連接選項:
-u:指定用戶
-p:指定密碼
-h:指定主機
-P:指定埠
-S:指定sock
-e:指定SQL
--protocol=name:指定連接方式

  • 2)第三方的連接工具

sqlyog、navicat
應用程式連接MySQL
註意:需要載入對應語言程式的API

2.連接方式

  • 1) socket連接
mysql -uroot -poldboy123 -S/application/mysql/tmp/mysql.sock
mysql -uroot -poldboy123
  • 2) TCP/IP
mysql -uroot -poldboy123 -h10.0.0.51 -P3306
  • 問題:你怎麼判斷你的MySQL資料庫可以對外提供服務?

四.MySQL啟動關閉流程

啟動

/etc/init.d/mysqld start
service mysqld start
systemctl start mysqld
mysqld_safe --defaults-file=/etc/my.cnf &

關閉

/etc/init.d/mysqld stop 
mysqladmin -uroot -poldboy123 shutdown
service mysqld stop
systemctl stop mysqld
kill -9 pid ?
killall mysqld ?
pkill mysqld ?

出現問題:
- 1、如果在業務繁忙的情況下,資料庫不會釋放pid和sock文件
- 2、號稱可以達到和Oracle一樣的安全性,但是並不能100%達到
- 3、在業務繁忙的情況下,丟數據(補救措施,高可用)

五.MySQL實例初始化配置

1.初始化配置文件的作用

場景:我要啟動實例

問題:
1)我不知道我的程式在哪?
2)我也不知道我將來啟動後去哪找資料庫?
3)將來我啟動的時候啟動信息和錯誤信息放在哪?
4)我啟動的時候sock文件pid文件放在哪?
5)我啟動,你們給了我多少記憶體?
...
N)我還有很多問題需要在我啟動之前告訴我,emmmmm....

  • 1)預編譯:cmake去指定,硬編碼到程式當中去
  • 2)在命令行設定啟動初始化配置
--skip-grant-tables 
--skip-networking
--datadir=/application/mysql/data
--basedir=/application/mysql
--defaults-file=/etc/my.cnf
--pid-file=/application/mysql/data/db01.pid
--socket=/application/mysql/data/mysql.sock
--user=mysql
--port=3306
--log-error=/application/mysql/data/db01.err
  • 3)初始化配置文件(/etc/my.cnf)

配置文件讀取順序:

img

說明:

$MYSQL_HOME/my.cnf >>>>>>/application/mysql/my.cnf

defaults-extra-file>>>>>/tmp/my.cnf

#查詢server_id
mysql -uroot -p1 -e "show variables like 'server_id'"

--defaults-file:預設配置文件
如果使用./bin/mysqld_safe 守護進程啟動mysql資料庫時,使用了 --defaults-file=<配置文件的絕對路徑>參數,這時只會使用這個參數指定的配置文件。


思考:

#cmake:
socket=/application/mysql/tmp/mysql.sock
#命令行:
--socket=/tmp/mysql.sock
#配置文件:
/etc/my.cnf中[mysqld]標簽下:socket=/opt/mysql.sock
#default參數:
--defaults-file=/tmp/a.txt配置文件中[mysqld]標簽下:socket=/tmp/test.sock

socket文件會生成在哪???文件名叫什麼???

/tmp/mysql.sock

img

優先順序結論:

  • 1、命令行
  • 2、defaults-file
  • 3、配置文件(覆蓋)
  • 4、預編譯(cmake)

2.初始化配置文件的使用

初始化配置文件功能

1)影響服務端的啟動(mysqld)
2)影響到客戶端的連接

  • mysql
  • mysqldump
  • mysqladmin

如何配置初始化配置文件

1)配置標簽分類
[client]所有客戶端程式
mysql
mysqldump
...

[server]所有伺服器程式
mysqld
mysqld_safe
...

六.MySQL多實例配置

  • 1.什麼是多實例

1)多套後臺進程+線程+記憶體結構

2)多個配置文件
a.多個埠
b.多個socket文件
c.多個日誌文件
d.多個server_id

3)多套數據

  • 啟動腳本

  • 2.多實例實戰

1.準備多個配置文件

#創建多個存放配置文件的目錄
[root@db02 ~]# mkdir /data/{3307,3308,3309} -p
[root@db02 ~]# tree /data/
/data/
├── 3307
├── 3308
└── 3309
#創建多個配置文件
[root@db02 ~]# vim /data/3307/my.cnf
[mysqld]
basedir=/application/mysql
datadir=/data/3307/data
socket=/data/3307/data/mysql.sock
port=3307
log_error=/data/3307/data/3307.err
log-bin=/data/3307/mysql-bin
server_id=7
pid_file=/data/3307/data/3307.pid
[client]
socket=/data/3307/mysql.sock
------------------------------------------------------------[root@db02 ~]# vim /data/3308/my.cnf
[mysqld]
basedir=/application/mysql
datadir=/data/3308/data
socket=/data/3308/data/mysql.sock
port=3308
log_error=/data/3308/data/3308.err
server_id=8
pid_file=/data/3308/data/3308.pid
------------------------------------------------------------[root@db02 ~]# vim /data/3309/my.cnf
[mysqld]
basedir=/application/mysql
datadir=/data/3309/data
socket=/data/3309/data/mysql.sock
port=3309
log_error=/data/3309/data/3309.err
server_id=9
pid_file=/data/3309/data/3309.pid
------------------------------------------------------------[root@db02 ~]# tree /data
/data
├── 3307
│ └── my.cnf
├── 3308
│ └── my.cnf└── 3309
└── my.cnf

2.初始化多個datadir

[root@db02 ~]# cd /application/mysql/scripts/
#初始化3307的數據目錄
[root@db02 scripts]#./mysql_install_db --defaults-file=/data/3307/my.cnf --user=mysql --basedir=/application/mysql --datadir=/data/3307/data
#3308
[root@db02 scripts]# ./mysql_install_db --defaults-file=/data/3308/my.cnf --user=mysql --
basedir=/application/mysql --datadir=/data/3308/data
#3309
[root@db02 scripts]# ./mysql_install_db --defaults-file=/data/3309/my.cnf --user=mysql --
basedir=/application/mysql --datadir=/data/3309/data
[root@db02 scripts]# tree -L 2 /data
/data
├── 3307
│ ├── data
│ └── my.cnf
├── 3308
│ ├── data
│ └── my.cnf
└── 3309
├── data
└── my.cnf

3.啟動多實例

mysqld_safe --defaults-file=/data/3307/my.cnf &
mysqld_safe --defaults-file=/data/3308/my.cnf &
mysqld_safe --defaults-file=/data/3309/my.cnf &
#檢查埠
[root@db02 scripts]# netstat -lntup
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program
name
tcp6 0 0 :::3306 :::* LISTEN
13052/mysqld
tcp6 0 0 :::3307 :::* LISTEN
13598/mysqld
tcp6 0 0 :::3308 :::* LISTEN
13428/mysqld
tcp6 0 0 :::3309 :::* LISTEN
13768/mysqld

4.設置密碼

[root@db02 scripts]# mysqladmin -uroot -p -S/data/3307/data/mysql.sock password '3307'
[root@db02 scripts]# mysqladmin -uroot -p -S/data/3308/data/mysql.sock password '3308'
[root@db02 scripts]# mysqladmin -uroot -p -S/data/3309/data/mysql.sock password '3309'

5.連接mysqsl

[root@db02 scripts]# mysql -uroot -p3307 -S /data/3307/data/mysql.sock
[root@db02 scripts]# mysql -uroot -p3308 -S /data/3308/data/mysql.sock
[root@db02 scripts]# mysql -uroot -p3309 -S /data/3309/data/mysql.sock

#小技巧
#system管理
[root@db01 ~]# vim /usr/lib/systemd/system/mysqld.service 

[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=https://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf #給下路徑
LimitNOFILE = 5000

#mysql連接
[root@db02 bin]# vim mysql3309
mysql -uroot -p3309 -S /data/3309/data/mysql.sock
[root@db02 bin]# chmod +x mysql3309

高可用:

主從複製

主庫操作

修改配置文件

#編輯mysql配置文件
[root@mysql-db01 ~]# vim /etc/my.cnf
#在mysqld標簽下配置
[mysqld]
#主庫server-id為1,從庫不等於1
server_id =1
#開啟binlog日誌
log_bin=mysql-bin

創建主從複製用戶

#登錄資料庫
[root@mysql-db01 ~]# mysql -uroot -poldboy123
#創建rep用戶
mysql> grant replication slave on *.* to rep@'10.0.0.%' identified by '123';

從庫操作

修改配置文件

#修改mysql-db02配置文件
[root@mysql-db02 ~]# vim /etc/my.cnf
#在mysqld標簽下配置
[mysqld]
#主庫server-id為1,從庫必須大於1
server_id =5
#開啟binlog日誌
log_bin=mysql-bin
#重啟mysql
[root@mysql-db02 ~]# /etc/init.d/mysqld restart
#修改mysql-db03配置文件
[root@mysql-db03 ~]# vim /etc/my.cnf
#在mysqld標簽下配置
[mysqld]
#主庫server-id為1,從庫必須大於1
server_id =10
#開啟binlog日誌
log_bin=mysql-bin
#重啟mysql
[root@mysql-db03 ~]# /etc/init.d/mysqld restart

==基於binlog日誌的主從複製,則必須記住主庫的master狀態信息==

mysql> show master status;
+------------------+----------+
| File             | Position |
+------------------+----------+
| mysql-bin.000002 |      120 |
+------------------+----------+

從庫

mysql>change master to
    master_host='127.0.0.1',
    master_user='rep',
    master_password='123',
    master_log_file='mysql-bin.000001',
    master_log_pos=120,
    master_port=3306;
    
    start slave;
    show slave status\G

如果IO線程為NO

  • 1.檢查網路

    ping 127.0.0.

  • 2.檢查埠

    telnet 127.0.0.1 3307

  • 檢查賬號,密碼

    mysql -urep -p123 -h127.0.0.1 -P 3307


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 通常的Cortex-M內核MCU一般都會內嵌並行NOR Flash,這個並行NOR Flash是直接掛在Cortex-M內核高性能AHB匯流排上的,知名IDE如果支持這款MCU,也都會同時集成對應Flash的下載演算法,方便用戶直接在IDE里下載代碼進Flash和XIP調試,但是i.MXRT內部並沒有F... ...
  • 1.poweroff 功能描述:可以關閉Linux系統,關閉記錄會被寫入/var/log/wtmp日誌文件中 命令語法:poweroff [選項] 選項含義: -n:關閉之前不同步 -p:當被稱為halt時關閉電源 -v:增加輸出,包括消息 -q:降低輸出錯誤唯一的消息 -w:並不實際關閉系統,只是 ...
  • 1.電腦組成 2.開發介面標準 ABI--(Application Binary Interface) ABI描述了應用程式與OS之間的底層介面,允許編譯好的目標代碼在使用相容ABI的系統中無需改動就能運行。 API--(Application Programming Interface) API ...
  • 預設已安裝Prometheus服務,服務地址:192.168.56.200 一、獲取交換機snmp信息 snmp服務IP(交換機IP):172.20.2.83 snmp community:dfetest 二、部署 snmp_exporter 2.1 下載snmp_exporter 下載snmp_e ...
  • 磁碟: 設備類型: 塊設備:block,磁碟 字元設備:char,鍵盤 brw-rw . 1 root disk 8, 0 Nov 3 09:42 sda 主設備號 次設備號查看硬碟類型: cat /sys/block/sda/queue/rotational0 --表示固態硬碟1 --表示機械硬碟 ...
  • [20191101]通過zsh計算sql語句的sql_id.txt1.簡單介紹以及測試使用zsh遇到的問題:--//前段時間寫的,鏈接http://blog.itpub.net/267265/viewspace-2659623/=>[20191011]通過bash計算sql語句的sql_id.txt ...
  • 前幾天,看到一個群友用WITH ROLLUP,由於沒用過,閑來無事測試一下。 一、概念: WITH CUBE:生成的結果集顯示了所選列中值的所有組合的聚合。 WITH ROLLUP:生成的結果集顯示了所選列中值的某一層次結構的聚合。 GROUPING:當行由 WITH CUBE或WITH ROLLU ...
  • 從這篇筆記開始,記錄一下表單生成器(Form Builder)相關的一些東西,網上關於他的介紹有很多,這裡就不解釋了。 開篇說一下如何存儲Form Builder生成的數據。🙂🙂🙂因為不同的表單有多少個表單項(也就是資料庫中的業務欄位)是不一樣的,也就是說傳統資料庫中的列是不固定的,那麼該如何 ...
一周排行
    -Advertisement-
    Play Games
  • GoF之工廠模式 @目錄GoF之工廠模式每博一文案1. 簡單說明“23種設計模式”1.2 介紹工廠模式的三種形態1.3 簡單工廠模式(靜態工廠模式)1.3.1 簡單工廠模式的優缺點:1.4 工廠方法模式1.4.1 工廠方法模式的優缺點:1.5 抽象工廠模式1.6 抽象工廠模式的優缺點:2. 總結:3 ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 本章將和大家分享ES的數據同步方案和ES集群相關知識。廢話不多說,下麵我們直接進入主題。 一、ES數據同步 1、數據同步問題 Elasticsearch中的酒店數據來自於mysql資料庫,因此mysql數據發生改變時,Elasticsearch也必須跟著改變,這個就是Elasticsearch與my ...
  • 引言 在我們之前的文章中介紹過使用Bogus生成模擬測試數據,今天來講解一下功能更加強大自動生成測試數據的工具的庫"AutoFixture"。 什麼是AutoFixture? AutoFixture 是一個針對 .NET 的開源庫,旨在最大程度地減少單元測試中的“安排(Arrange)”階段,以提高 ...
  • 經過前面幾個部分學習,相信學過的同學已經能夠掌握 .NET Emit 這種中間語言,並能使得它來編寫一些應用,以提高程式的性能。隨著 IL 指令篇的結束,本系列也已經接近尾聲,在這接近結束的最後,會提供幾個可供直接使用的示例,以供大伙分析或使用在項目中。 ...
  • 當從不同來源導入Excel數據時,可能存在重覆的記錄。為了確保數據的準確性,通常需要刪除這些重覆的行。手動查找並刪除可能會非常耗費時間,而通過編程腳本則可以實現在短時間內處理大量數據。本文將提供一個使用C# 快速查找並刪除Excel重覆項的免費解決方案。 以下是實現步驟: 1. 首先安裝免費.NET ...
  • C++ 異常處理 C++ 異常處理機制允許程式在運行時處理錯誤或意外情況。它提供了捕獲和處理錯誤的一種結構化方式,使程式更加健壯和可靠。 異常處理的基本概念: 異常: 程式在運行時發生的錯誤或意外情況。 拋出異常: 使用 throw 關鍵字將異常傳遞給調用堆棧。 捕獲異常: 使用 try-catch ...
  • 優秀且經驗豐富的Java開發人員的特征之一是對API的廣泛瞭解,包括JDK和第三方庫。 我花了很多時間來學習API,尤其是在閱讀了Effective Java 3rd Edition之後 ,Joshua Bloch建議在Java 3rd Edition中使用現有的API進行開發,而不是為常見的東西編 ...
  • 框架 · 使用laravel框架,原因:tp的框架路由和orm沒有laravel好用 · 使用強制路由,方便介面多時,分多版本,分文件夾等操作 介面 · 介面開發註意欄位類型,欄位是int,查詢成功失敗都要返回int(對接java等強類型語言方便) · 查詢介面用GET、其他用POST 代碼 · 所 ...
  • 正文 下午找企業的人去鎮上做貸後。 車上聽同事跟那個司機對罵,火星子都快出來了。司機跟那同事更熟一些,連我在內一共就三個人,同事那一手指桑罵槐給我都聽愣了。司機也是老社會人了,馬上聽出來了,為那個無辜的企業經辦人辯護,實際上是為自己辯護。 “這個事情你不能怪企業。”“但他們總不能讓銀行的人全權負責, ...