Mysql的管理及使用

来源:http://www.cnblogs.com/bananaaa/archive/2017/12/19/8066827.html
-Advertisement-
Play Games

第1章 Mysql的管理 1.1 連接管理mysql mysql[options] #Linux或UNIX shell提示符(終端視窗) mysql --help #查看幫助信息 mysql --version/-V #查看客戶端程式的版本 01.常見的選項語法格式: 長格式(--<option>) ...


第1章 Mysql的管理

1.1 連接管理mysql

mysql[options]   #Linux或UNIX shell提示符(終端視窗)
mysql --help   #查看幫助信息
mysql --version/-V   #查看客戶端程式的版本

01.常見的選項語法格式:

長格式(--<option>)

簡易格式(-<option>)

02.通過指定的主機進行連接:

本地連接到在同一主機上運行的伺服器

遠程連接到在其他主機上運行的伺服器

03.常見特定於客戶機的連接選項

-u<user_name>或--host=<user_name>
-p<password>
-h<host_name>或--host=<host_name>
--protocol=<protocol_name>   #協議
-P<port_number>或--port=<port_number>
-S<socket_name>或--socket=<socket_name>

1.2 資料庫啟動流程介紹

1 [root@db02 ~]# file /application/mysql/bin/mysqld
2 
3 /application/mysql/bin/mysqld: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped

提示:單進程mysqld 其屬性LSB即二進位的可執行文件,mysql.server便於我們通過SYS-V啟動關閉的腳本

說明:support-files/mysql.server及mysqld_safe都是腳本文件,最後都調用mysqld二進位文件啟動

1.3 mysql資料庫的關閉與啟動

01.資料庫關閉命令

1 /etc/init.d/mysqld stop

2 mysqladmin -uroot -poldboy123 shutdown 

註意:生產環境下禁止使用下述方式關閉mysql軟體

kill -9   #利用系統進程管理命令關閉MySQL
kill pid   # pid即資料庫服務對應的進程號
l killall mysqld   #mysqld即資料庫服務對應的進程名
l pkill mysqld   #mysqld即資料庫服務對應的進程名

02.資料庫啟動命令

1 /etc/init.d/mysqld start

2 application/mysql/bin/mysqld_safe [--user=mysql] & 

1.3.1 perror查看錯誤詳細內容

在mysql使用過程中,由於操作系統引起的文件目錄不存在或sql語句錯誤引起的報錯,這些error會有相應的代碼如errorN、ErrcodeN,這裡"N"代表具體的錯誤號

1 [root@db02 ~]# perror 126 127 135
2 OS error code 126:  Required key not available
3 MySQL error code 126: Index file is crashed
4 OS error code 127:  Key has expired
5 MySQL error code 127: Record file is crashed
6 MySQL error code 135: No more room in record file

1.4 Mysql初始化配置文件

即在資料庫啟動之前通過/etc/my.cnf告訴啟動程式一系列預設置的選項

配置文件功能:影響伺服器進程的啟動;影響到客戶端程式

實例01

 1 ./mysqld_safe --basedir=/application/mysql --datadir=/application/mysql/data --socket=/tmp/mysql.sock --user=mysql #指定mysql啟動參數 

註意:由於指定了socket導致無法找到該文件,此時mysql無法進行正常連接,故使用mysql -uroot -poldboy123 -S /tmp/mysql.sock即可

1.4.1 配置my.cnf的方法

使用不同的"標簽/模塊"明確指定影響哪部分功能,代表一類程式

實例02

 1 vim /etc/my.cnf
 2 
 3 [mysqld]
 4 basedir=/application/mysql
 5 datadir=/application/mysql/data
 6 socket=/tmp/mysql.sock
 7 log-error=/var/log/mysql.log
 8 port=3307   #其中,用戶無需指定
 9 
10 [mysql]
11 socket=/tmp/mysql.sock
12 user=root
13 password=oldboy123   #此處通過socket登錄,無需配置埠
14 /etc/init.d/mysqld restart   #重啟生效

說明:此時檢查進程信息,可以看到與我們手動配置的my.cnf一致

1 [root@db02 ~]# ps -ef |grep [my]sql
2 
3 root       3411   1918  0 15:52 pts/1    00:00:00 /bin/sh /application/mysql/bin/mysqld_safe
4 
5 mysql      3548   3411  0 15:52 pts/1    00:00:00 /application/mysql/bin/mysqld --basedir=/application/mysql --datadir=/application/mysql/data --plugin-dir=/application/mysql/lib/plugin --user=mysql --log-error=/var/log/mysql.log --pid-file=/application/mysql/data/db02.pid --socket=/tmp/mysql.sock --port=3307

1.4.2 配置文件讀取順序

/etc/my.cnf
  ↓ ↓ ↓
/etc/mysql/my.cnf
$MYSQL_HOME/my.cnf
defaults-extra-file
~/.my.cnf

說明:假設4個配置文件都存在, 同時使用 --defaults-extra-file指定了參數文件,這時如果有一個"參數變數"在5個配置文件中都出現了,那麼後面的配置文件中的參數變數值會覆蓋前面配置文件中的參數變數值,就是說會使用 ~/. my.cnf中設置的值

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

1.5 Mysql多實例配置

多個mysqld+多套my.cnf+多套數據=>生產環境無用

思路:

01.初始化兩套數據到不同目錄mysql_install_db
/data/3306
/data/3308

02.兩套配置文件
/data/3306/my.cnf
/data/3308/my.cnf

03.兩個socket
socket=/data/3306/mysql.sock
socket=/data/3308/mysql.sock

04.兩套實例
/application/mysql/bin/mysqld_safe --defaults-file=/data/3306/my.cnf
/application/mysql/bin/mysqld_safe --defaults-file=/data/3306/my.cnf

05.設計啟動腳本

1.5.1 實例配置文件及程式腳本

註意:需首先關閉當前mysql服務,防止造成埠衝突/etc/init.d/mysqld stop

 1 [root@db02 ~]# vim /data/3306/my.cnf
 2 [client]
 3 port            = 3306
 4 socket          = /data/3306/mysql.sock
 5 
 6 [mysqld]
 7 user    = mysql
 8 port    = 3306
 9 socket  = /data/3306/mysql.sock
10 basedir = /application/mysql
11 datadir = /data/3306/data
12 log-bin = /data/3306/mysql-bin
13 server-id = 6
14 
15 [mysqld_safe]
16 log-error=/data/3306/oldboy_3306.err
17 pid-file=/data/3306/mysqld.pid
my.cnf
[root@db02 ~]# vim /data/3306/mysql
#!/bin/sh
port=3306
mysql_user="root"
CmdPath="/application/mysql/bin"
mysql_sock="/data/${port}/mysql.sock"
mysqld_pid_file_path=/data/3306/3306.pid
start(){
    if [ ! -e "$mysql_sock" ];then
         printf "Starting MySQL...\n"
        /bin/sh ${CmdPath}/mysqld_safe --defaults-file=/data/${port}/my.cnf --pid-file=$mysqld_pid_file_path 2>&1 > /dev/null &
        sleep 3
    else
        printf "MySQL is running...\n"
        exit 1
    fi
}
stop(){
    if [ ! -e "$mysql_sock" ];then
        printf "MySQL is stopped...\n"
        exit 1
    else
        printf "Stoping MySQL...\n"
        mysqld_pid=`cat "$mysqld_pid_file_path"`
         if (kill -0 $mysqld_pid 2>/dev/null)
           then
             kill $mysqld_pid
             sleep 2
         fi
    fi
}

restart(){
    printf "Restarting MySQL...\n"
    stop
    sleep 2
    start
}

case "$1" in
    start)
        start
    ;;
    stop)
        stop
    ;;
    restart)
        restart
    ;;
    *)
        printf "Usage: /data/${port}/mysql {start|stop|restart}\n"
esac
mysql

1.5.2 創建3308埠配置文件

1 \cp /data/3306/my.cnf  /data/3308/
2 \cp /data/3306/mysql  /data/3308/
3 sed -i 's/3306/3308/g' /data/3308/my.cnf
4 sed -i 's/server-id = 6/server-id = 8/g' /data/3308/my.cnf
5 sed -i 's/3306/3308/g' /data/3308/mysql

1.5.3 創建數據目錄授權

1 mkdir -p /data/{3306,3308}/data
2 chown -R mysql.mysql /data/
3 chmod 700 /data/{3306,3308}   #增加其安全性

1.5.4 初始化數據並創建錯誤日誌文件

1 cd /application/mysql/scripts 
2 ./mysql_install_db  --defaults-file=/data/3306/my.cnf --basedir=/application/mysql --datadir=/data/3306/data --user=mysql
3 ./mysql_install_db  --defaults-file=/data/3308/my.cnf --basedir=/application/mysql --datadir=/data/3308/data --user=mysql
4 
5 
6 touch /data/3306/oldboy_3306.err
7 touch /data/3308/oldboy_3308.err

說明:5.6.36特殊性即不會自動創建錯誤日誌文件

1.5.5 啟動資料庫併進行測試

1 /data/3306/mysql start

2 /data/3308/mysql start

3

4 sleep 5 

註意:由於mysql服務的預設埠為3306,故在啟動之前需先將mysql服務停止運行並關閉開機自啟動

 1 [root@db02 scripts]# netstat -lntup|grep 330
 2 tcp        0      0 :::3306                :::*                   LISTEN      1793/mysqld        
 3 tcp        0      0 :::3308                :::*                   LISTEN      2001/mysqld
 4 
 5 [root@db02 ~]# ps -ef |grep [m]ysql
 6 root       1217      1  0 22:40 ?        00:00:00 /bin/sh /application/mysql/bin/mysqld_safe --defaults-file=/data/3306/my.cnf --pid-file=/data/3306/3306.pid
 7 mysql      1403   1217  0 22:40 ?        00:00:01 /application/mysql/bin/mysqld --defaults-file=/data/3306/my.cnf --basedir=/application/mysql --datadir=/data/3306/data --plugin-dir=/application/mysql/lib/plugin --user=mysql --log-error=/data/3306/oldboy_3306.err --pid-file=/data/3306/3306.pid --socket=/data/3306/mysql.sock --port=3306
 8 
 9 root       1426      1  0 22:40 ?        00:00:00 /bin/sh /application/mysql/bin/mysqld_safe --defaults-file=/data/3308/my.cnf --pid-file=/data/3308/3308.pid
10 mysql      1611   1426  0 22:40 ?        00:00:01 /application/mysql/bin/mysqld --defaults-file=/data/3308/my.cnf --basedir=/application/mysql --datadir=/data/3308/data --plugin-dir=/application/mysql/lib/plugin --user=mysql --log-error=/data/3308/oldboy_3308.err --pid-file=/data/3308/3308.pid --socket=/data/3308/mysql.sock --port=3308

1.5.5.1  加入開機自啟

1 vim /etc/rc.local

2

3 /data/3306/mysql start

4 /data/3308/mysql start 

1.5.6 mysql多實例登錄

1 mysql -S /data/3306/mysql.sock

2 mysql -S /data/3308/mysql.sock #或mysql -h 10.0.0.52 -P 3306 

 

第2章 Mysql用戶管理

2.1 用戶的介紹

01.定義:用戶名+主機域(host指定要登陸本機的用戶主機,而非本機)

02.功能作用:連接資料庫、管理資料庫對象及數據

03.連接資料庫:

A.定義用戶:用戶名+主機域、密碼

B.定義許可權:對不同對象進行許可權(角色)定義

grant 許可權 on 許可權範圍(對象) to 用戶 identified by '密碼';

04.許可權(角色):

對資料庫的讀、寫等操作,如create、select、insert、update等

資料庫定義好的一組許可權的定義,如all privileges、replication slave

05.許可權範圍:

全庫級別:*.* (所有資料庫對象)
單庫級別:banana.* (oldboy單庫下所有對象)
單表級別:banana.test (單表級別)

註意:當在多個許可權範圍上設置了同一個用戶的許可權時,以綜合最大許可權為準。故在一般情況下不要在多個許可權範圍內設置許可權,如庫級別oldboy.*、表級別oldboy.test

06.用戶:

repl@localhost
repl@'10.0.0.53'
repl@'10.0.0.%'(%為通配符,匹配所有)或10.0.0.0/255.0.0.0
repl@'10.0.0.5%'

#網段帶匹配符%則必須加' ',用戶可加可不加

2.2 用戶許可權實例

查看當前所有用戶(選擇)

select user,password,host from mysql.user;

創建用戶

語法:CREATE USER '用戶'@'主機' IDENTIFIED BY '密碼';
實例:create user 'banana'@'10.0.0.%' identified by '123';

授權用戶

語法:GRANT ALL ON *.* TO '用戶'@'主機';
實例:grant all on banana.* to banana@'172.16.1.%';

  其他實例

grant all on *.* to banana@'172.16.1.%' identified by '123';   #創建用戶,同時進行授權
grant all on *.* to banana@'localhost' identified by '123' with grant option;   #授權單表root一樣的許可權
grant select,create,insert,update on banana.* to banana@'10.0.0.%' identified by '123';   #只對banana資料庫下的對象進行增insert create、改update、查select

收回用戶許可權

語法:REVOKE INSERT ON *.* FROM '用戶'@'主機';
實例:revoke drop on banana.* from 'banana'@'10.0.0.%';

查看用戶對應許可權

語法:SHOW GRANTS FOR '用戶'@'主機';
實例:show grants for banana@'10.0.0.%';

註意:mysql內自帶的命令可以大寫,而自身定義的用戶管理需區分大小寫;儘量不要修改授權表

說明:使用資料庫自帶的命令無需修改授權表如drop、grant,而使用如delete、update等命令則需修改授權表,如下

刪除用戶

語法:drop user 'user'@'主機域;
實例:drop user banana@'10.0.0.52';
     delete from mysql.user where user='banana' and host='localhost';   #強制刪除用戶(危險)
     flush privileges;

總結說明:可以授權的用戶許可權create, select, insert, update, delete, 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

2.3 Mysql忘記密碼的解決方法

01.停止mysql服務

 1 /etc/init.d/mysqld stop 

02.添加參數啟動服務

 1 /application/mysql/bin/mysqld_safe --skip-grant-tables --skip-networking --user=mysql &  

說明:在此模式下啟動情況為:無密碼登陸、網路用戶無法登陸(只能本地登錄)、與授權有關的命令均無法執行,如grant,revoke,drop user,create user

03.修改密碼

1 mysql
2 
3 mysql> use mysql
4 mysql> update mysql.user set password=PASSWORD('123') where user='root' and host='localhost';   #只針對5.6
5 mysql> flush privileges;

04.重啟mysql服務

 1 /etc/init.d/mysqld restart 

05.登錄驗證

 1 mysql -uroot -p123 

至此,密碼修改成功

 

第3章 MySQL客戶端

3.1 Mysql客戶端命令

SQL是用戶用來管理及控制資料庫的專用語言

mysql:

用於資料庫連接管理;將用戶SQL語句發送到伺服器

mysqladmin:

命令行管理工具

mysqldump:

備份資料庫和表的內容

3.1.1 ①mysql客戶端介面自帶功能

\h 或 help 或 ?   #獲取幫助信息,如help grant
\G               #格式化輸出(行轉列),如select * from mysql.user\G
\T 或 tee         #記錄操作日誌,如tee /tmp/mysql.log 正誤均記錄
\c 或 CTRL+c    #退出,如CTRL+d,exit,\q,quit等
\s 或 status       #查看資料庫負載、版本及連接等狀態信息
\. 或 source       #調用SQL腳本,如source world.sql;
\u 或use          #進入/切換資料庫,如use world

快捷鍵

上下翻頁
tab 補全表名
ctrl + C 退出
ctrl + L 清屏

3.1.2 ②mysqladmin命令

命令幫助:mysqladmin --help
語法:mysqladmin -u<name> -p<password> commands
實例:
mysqladmin version
mysqladmin processlist
mysqladmin status
mysqladmin ping
mysqladmin shutdown
mysqladmin variables

3.1.3 ③mysqldump命令

命令幫助:mysqldump --help

基本語法:
Usage: mysqldump [OPTIONS] database [tables]
OR   mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR   mysqldump [OPTIONS] --all-databases [OPTIONS]

3.2 SQL語句

3.2.1 DDL 數據定義語言

定義對象:庫(名字、特性)、表(表名字、列信息)

對於庫定義:創建、刪除、修改(本身和庫中的對象->表,視圖,存儲過程,函數,觸發器)

       表定義:創建(定義表結構)、刪除(對於表本身)、修改(只針對錶結構非表內容)

3.2.1.1  庫定義

查看庫

show databases;
show databases like '%ban%';   #模糊匹配

創建庫定義

語法:CREATE DATABASE db_name CHARACTER SET charset_name COLLATE collation_name;
實例:create database banana;
     create database banana_tong character set gbk collate gbk_chinese_ci;  #指定字元集建庫

說明:在一些SQL語句的結尾處要使用";"分號或者使用"\g"或"\G"來結束語句的運行

修改庫字元編碼

語法:ALTER DATABASE [db_name] CHARACTER SET charset_name COLLATE collation_name;
實例:alter database banana charset gbk;

刪除庫

drop database banana;

切庫

use baanana;

3.2.1.2  表定義

表屬性:欄位、數據類型、索引 ==>預設:字元集、引擎

表定義(列->必須定義,至少一列):

表名、列名、列屬性(數據類型、列約束)

列定義的範圍說明:

1)數據類型->字元/數字

2)約束條件->子健、外鍵、唯一

3)列屬性->比較特殊的定義

定義表之前需先進入資料庫

use world;

創建表

語法:CREATE TABLE 表名 (列名 列定義)
實例:create table test(id int);
     create table student(idcard int ,name char(30),sex char(4));   #創建多列

查看表結構

desc student;

查看建表語句

show create table student;

修改表定義(表名)

rename table student to test1;
alter table test1 rename to people;

添加表特性

alter table people add addr char(40) NOT NULL;
alter table people add age int(4) after name;
alter table people add tel varchar(15) first; 

#同時添加多個列定義
alter table people add id int(10) first,add sex char(4) after name;

刪除表結構(列欄位)

alter table people drop sex;

修改表定義/數據類型

alter table people modify name char(20);
alter table people change name people_name char(30);

3.2.2 DCL 資料庫控制語言

用戶授權:grant

語法:GRANT ALL ON *.* TO 'user'@'localhost';
實例:grant select,create,insert,update on banana.* to 'banana'@'10.0.0.%' identified by '123';   #創建用戶的同時進行授權

回收許可權:revoke

語法:REVOKE INSERT ON *.* FROM sys@localhost;
實例:revoke drop,delete on banana.* from sys@localhost; 

3.2.3 DML 數據操作語言

插入數據

語法:insert into <表名> [(<欄位名1>[,..<欄位名n > ])] values (值1 )[,(值n )]
實例:insert into banana values(1,'boy');   #插入一行數據
     insert into banana values(1,'boy'), (2,'girl');   #插入多行數據

#只針對某一列插入數據
insert into test(id,name) values(1,'boy');

更新/修改表(切記要有where條件)

update test2 set name='haha' where name='girl';

刪除表內容(切記要有where條件)

delete from test where id=1; # 邏輯刪除,一行一行刪。
truncate table test; # 物理刪除,pages(block) ,效率高

insert into `test` values(1,'apple'),(2,'pear'),(3,'banana'), (4,'lemon'), (5,'orange')

3.2.3.1  [企業案例]生產環境中d偽刪除

01.為表添加一個state

TINYINT說明:即欄位類型,若設置為UNSIGNED類型,只能存儲從0到255的整數,不能用來儲存負數

 1 mysql> alter table test2 add state tinyint(2) not null default 1;
 2 mysql> desc test2;
 3 
 4 +-------+----------+------+-----+---------+-------+
 5 | Field | Type     | Null | Key | Default | Extra |
 6 +-------+------------+------+-----+---------+-------+
 7 | id    | int(11)    | YES|     | NULL |      |
 8 | name  | varchar(20)| YES|    | NULL |      |
 9 | state | tinyint(2) | NO |     | 1     |      |
10 +-------+-------------+------+-----+------+---+

02.查看當前的state狀態

1 mysql> select * from test2;
2 
3 +----+---------+-------+
4 | id | name    | state |
5 +----+---------+-------+
6 |  1 | boy   |   1 |
7 |  2 | girl  |   1 |
8 |  3 | inca  |   1 |
9 |  4 | zuma  |   1 |

03.更新並修改state數據為0

 1 mysql> update test2 set state=0 where name='boy';
 2 mysql> select * from test2;
 3 
 4 +----+---------+-------+
 5 | id | name    | state |
 6 +----+---------+-------+
 7 |  1 | boy   |   0 |
 8 |  2 | girl  |   1 |
 9 |  3 | inca  |   1 |
10 |  4 | zuma  |   1 |

04.當查詢時使用where條件,此時只會顯示state=1的記錄,其效果與刪除類似

1 mysql> select * from test2 where state=1;
2 
3 +----+---------+-------+
4 | id | name    | state |
5 +----+---------+-------+
6 |  2 | girl  |   1 |
7 |  3 | inca  |   1 |
8 |  4 | zuma  |   1 |

3.2.3.2  mysql安全模式(防止不加條件誤刪)

1 [root@db02 ~]# mysql -uroot -p123 -U
2 
3 mysql> update test2 set name='oldgirl';
4 
5 ERROR 1175 (HY000): You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column

說明:mysql命令加上選項-U後,當發出沒有where或limit關鍵字的update或delete時,mysql程式拒絕執行

3.2.4 DQL數據查詢語言

語法:SELECT <欄位1,欄位2,...> FROM <表名> WHERE <表達式>

其中,select、from、where是不能隨便改的,是關鍵字,支持大小寫

查看用戶的連接信息

select user,password,host from mysql.user;

#模糊查詢數據
select user,password,host from mysql.user where user like 'sy%';

查看test2表中的信息

select * from sys.test2;   #查看所有信息
select id,name from sys.test2;

特殊信息查詢

select id,name from test2 where id=2;
select id,name from test2 where id>2 and id<4;   #查看id大於2且小於4的記錄
select id,name from test2 where name='sys';
select id,name from test2 order by id asc;   #提取記錄排序

select id,name from test2 order by limit 1,3;   #顯示跳過第一行後的三行(需要與排序配合使用)

註意:select必須同from搭配使用

 

此筆記是本人學習摘記整理而成,此為初稿(尚有諸多不完善之處),原創作品允許轉載,轉載時請務必以超鏈接形式標明文章原始出處,作者信息和本聲明,否則將追究法律責任。http://www.cnblogs.com/bananaaa/

 


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

-Advertisement-
Play Games
更多相關文章
  • 吐槽一下,博客園久了沒有上,賬號沒了,重新申請一個. cesharp v62版本,內核採用最新的Cef 62,支持最新的Grid佈局. 由於官方的cefsharp 採用.net4.5.2開發.怎麼辦怎麼辦.我只能用.net4.0.沒辦法啊,自己拿源碼修改相容唄. 仔細分析源碼發現: 1.net4.5 ...
  • 效果圖 相關知識 這部分基本就是廢話,網上都能找到,我只不過是整理了以下.建議先不看,用到的時候可以回來看看 先來看兩組圖,有助於理解什麼是貝塞爾曲線(圖片取自維基百科,參考鏈接1) 二次貝塞爾曲線: P0是起點,P2是終點,P1是控制點 三次貝塞爾曲線: P0是起點,P2是終點,P1是控制點1,P ...
  • public interface ICycle:IEnumerable { T Get(); } public class Cycle:ICycle { private class Node { public Node(F f) { Data=f; } p... ...
  • 1.開始。 2.新建一個控制台,我們新建一個SpringNetTest類。 2.首先我們用正常的方式在mian函數入口實例化這個SpringNetTest對象 4.很明顯這個地方是直接New的,進行了強耦合,在實際的項目中這樣寫,未來需求變動是不利於修改的。面向對象思想中,我們要面向介面編程。接下來 ...
  • 複製以下代碼並錄製巨集,運行一次即可。Option ExplicitPublic Sub AllInternalPasswords()' Breaks worksheet and workbook structure passwords. Bob McCormick' probably origina... ...
  • 首先先來看幾個概念,分別是:單用戶、單任務、多用戶、多任務 單用戶: 是指操作系統一般只能由一個人同時進行登錄 單任務: 是指操作系統只能同時處理一個任務 多用戶: 是指操作系統可以允許由多個用戶同時操作 多任務: 是指操作系統可以同時處理多個任務 windows屬於單用戶、多任務的操作系統(遠程登 ...
  • Ubuntu Server在虛擬機中的安裝與基本配置 安裝Ubuntu Server 16 ​ 虛擬機使用VMware workstation。新建虛擬機,一路下一步,安裝ubuntu,出現錯誤。 ​ 更換語言為英文,沒有報錯,成功安裝。 配置網路 ​ 為了方便使用ssh,使用了關閉dhcp的NAT ...
  • 一、ls -l 各段含義 第一個欄位共有10個'-',第一個‘-’代表該文件類型:‘-’是普通文件,b是塊特殊文件,c是字元特殊文件,d是目錄,l是鏈接文件,p是管道文件後面九條杠,三條一組,可以是rwxrwxrwx,這代表按順序所有者、組、其他用戶的訪問許可權均為可讀可寫可執行。 如果其中哪個位置還 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...