Linux MYSQL  数据库

1.1.概述:

DBMS

datebase management system  数据库管理系统

DML:date manapulate lanaguage  数据操作语言

INSERT,REPLACE,UPDATE,DELETE

DLL: Date Defination Lanauage 数据定义语言

CREATE,创建数据库 ALTER,修改数据库 DROP 删除数据库和表

DCL:Date Control Language 数据控制语言

常用数据库软件

  • Oracle   世界三大

  • Sybase

  • Infomix

  • SQL Server     sybase和micrsoft共同开发

  • MySQL

  • PostgreSQL

  • pgsql

  • EnterpriseDB   redhat注资

MySQL,SQL 瑞典   MySQL AB 作者女儿名字命名

MYSQL事务工作原理:

可以能保证你做的一系列动作,要么全部成功。如果有一个操作失败,就回退到修改前。

比如你要做下面几个操作:

1.删除表A中的某些记录;

2.向B添加一些记录;

3.修改C表中的一些数据;

-------------------------

使用事务,如果1,2都成功了,3却失败了。

就会回退到第1步执行前的样子,ABC表都没被修改。

1.2.索引

表索引:相当于一个表的目录 可以加快速度访问

1)    普通索引

2)    唯一索引

3)    主索引

4)    外键索引

5)    复合索引

# 数据库文件路径

mysql> show variables link '%datadir%';

1.3.mysql安装

1.3.1.mysql源码安装

 

wget http://downloads.mysql.com/archives/mysql-5.1/mysql-5.1.63.tar.gz

tar xzf mysql-5.1.63.tar.gz ;cd mysql-5.1.63

./configure --prefix=/usr/local/mysql  --enable-assembler && make -j8 &&  make -j8 install

 

--enable-assembler      # 使用某些字符串的汇编器版本

 

安装报错: checkingfor termcap functions library... configure: error: No curses/termcap libraryfound

解决方法: yum install ncurses-devel  -y

1. 设置服务

配置MYSQL服务为系统服务

cp/usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf

cp/usr/local/mysql/share/mysql/mysql.server /etc/rc.d/init.d/mysqld

2. 设置开机启动

chkconfig --add mysqld              # 增加服务

chkconfig --level 345 mysqld on       # 增加开机项

3. 建立系统账号

useradd mysql

4. 过入mysql安装目录

cd /usr/local/mysql

chown -R mysql.mysql/usr/local/mysql    # 将安装目录所有者权限设为mysql用户

/usr/local/mysql/bin/mysql_install_db--user=mysql --datadir=/usr/local/mysql/var --basedir=/usr/local/mysql   # 初始化数据库    --datadir=指定数据目录   --basedir=指定数据基础目录

chown -R mysql.mysql var     # 修改var所有者

/usr/local/mysql/bin/mysqld_safe --user=mysql &    # 服务后台启动

5.5以上版本安装方式:

rm -rf /data/mysql/*
scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql--user=mysql

bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql &

安装依赖:yum -yinstall gcc-c++ cmake ncurses-devel

useradd mysql

mkdir -p /data/mysql

chown -R mysql:mysql /data/mysql

cmake .-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \

-DMYSQL_DATADIR=/data/mysql \

-DSYSCONFDIR=/etc \

-DMYSQL_USER=mysql \

-DMYSQL_TCP_PORT=3306 \

-DWITH_XTRADB_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_PARTITION_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_READLINE=1 \

-DENABLED_LOCAL_INFILE=1 \

-DWITH_EXTRA_CHARSETS=1 \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DEXTRA_CHARSETS=all \

-DWITH_BIG_TABLES=1 \

-DWITH_DEBUG=0

&& make && make install

初始化

cd /usr/local/mysql

./scripts/mysql_install_db --user=mysql--basedir=/usr/local/mysql --datadir=/data/mysql

添加服务

cp ./support-files/mysql.server/etc/rc.d/init.d/mysqld

chmod 755 /etc/init.d/mysqld

chkconfig mysqld on

修改启动服务

vi /etc/rc.d/init.d/mysqld

basedir=/usr/local/mysql

datadir=/data/mysql

:wq!

修改配置文件

vim /etc/my.cnf

datadir=/data/mysql

:wq

service mysqld start

添加环境变量

vi /etc/profile

export PATH=$PATH:/usr/local/mysql/bin

:wq!

添加sock

source /etc/profile

ln -s /var/lib/mysql/mysql.sock /tmp/

安装报错:

Curses library not found.  Please install appropriate package,

按照错误提示,Debian/Ubuntu下需要安装libncurses5-dev;Redhat下需要安装ncurses-devel ,检查是否安装了ncurses包,如下所示,已经安装了ncurses-5.5-24.20060715,但是缺少ncurses-devel包。

yum install ncurses-devel -y

安装了ncurses-devel包后,删除CMakeCache.txt,然后重新编译,编译成功,问题解决!

预编译:

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql/-DMYSQL_DATADIR=/home/mysql/data/ -DEFAULT_CHARSET=utf8 -DMYSQL_TCP_PORT=3306-DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DWITH_DEBUG=0 -DWITH_INNOBASE_STORAGE_ENGINE=1-DMYSQL_USER=mysql

make && make install

这些参数的意思:
-DCMAKE_INSTALL_PREFIX=/data/mysql 准备安装到那里
-DEFAULT_CHARSET=utf8 默认的字符集
-DMYSQL_TCP_PORT=3306 数据库的监听端口
-DMYSQL_UNIX_ADDR=/tmp/mysql3306.sock 本机连回数据库的unix socket
-DWITH_DEBUG=0 关闭debug模式
-DWITH_INNOBASE_STORAGE_ENGINE=1 打开innodb引擎

项目删除:CMake 默认不提供uninstall 这个 target,想要的话,输入:

xargs rm < install_manifest.txt

1.3.2.Yum安装

yum  install -y  mysql mysql-devel mysql-server mysql-libs

安装依赖包

-----------------------------------------------------------------------------------------------------------------------------

Installing:

mysql-server         i686     5.1.73-5.el6_7.1      updates        8.8 M

Installing for dependencies:

mysql               i686     5.1.73-5.el6_7.1       updates        904 k

perl-DBD-MySQL     i686      4.013-3.el6          base          134 k

perl-DBI             i686         1.609-4.el6         base         705 k

Updating for dependencies:

mysql-libs             i686      5.1.73-5.el6_7.1       updates       1.2 M

---------------------------------------------------------------------------------------------------------------------------------

二进制程序:mysql  mysqld 可执行程序

RDBMS:

/var/lib/mysql/     数据库默认路径

yum install mysql-server -y

初始化mysql: 首次安装会自动初始化

1.4.服务与端口

service mysql  restart

service mysqld  restart

# 重启和停止服务

/etc/init.d/mysqld stop

端口tcp:3306

/usr/local/mysql/share/mysql.server stop –socket=/var/lib/mysql/mysql.sock&  启动后台服务

/usr/loacl/mysql/bin/mysql/mysql.serverstop   停止源码mysql服务

1.5.配置文件 /etc/my.conf

[mysqld]                                        // 服务器端配置

datadir=/data/mysql                           // 数据目录

socket=/var/lib/mysql/mysql.sock //socket         // 通信设置

user=mysql                                       // 使用mysql用户启动

symbolic-links=0                                  // 是否支持快捷方式

log-bin=mysql-bin                                // 开启bin-log日志

server-id = 1                                     // mysql服务ID

auto_increment_offset=1                          // 1~65535 自增长字段

auto_increment_increment=2                      // 1~65535 自增长字段每次递增的量 默认为1

(mysql中有自增长字段,在做数据库的主主同步时需要设置自增长的两个相关配置:

在主主同步配置时,需要将两台服务器的auto_increment_increment增长量都配置为2,而要把auto_increment_offset分别配置为1和2,这样才可以避免两台服务器同时做更新时自增长字段的值之间发生冲突。)

[mysqld_safe]                                      // mysql服务安全启动配置

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid

replicate-do-db =jfedu                             // 允许slave同步哪个库

key_buffer_size=16M                 指定索引缓冲区的大小,它决定索引处理的速度,尤其是索引读的速度。一般为内存的50% show variables like ‘key_buffer_size‘;查询缓冲大小

max_connections = 3000              # 每个客户端连接最大的错误允许数量,如果达到了此限制,这个客户端将会被MySQL服务阻止直到执行了”FLUSH  HOSTS”或者服务重启.

innodb_buffer_pool_size=            对于InnoDB表来说,innodb_buffer_pool_size的作用就相当于key_buffer_size对于MyISAM表的作用一样。InnoDB使用该参数指定大小的内存来缓冲数据和索引。

对于单独的MySQL数据库服务器,最大可以把该值设置成物理内存的80%。

内存32G,24G

根据MySQL手册,对于2G内存的机器,推荐值是1G(50%)。

basedir      =path          # 使用给定目录作为根目录(安装目录)。

datadir      =path          #从给定目录读取数据库文件。

pid-file     = filename      # 为mysqld程序指定一个存放进程ID的文件(仅适用于UNIX/Linux系统);

[mysqld]

socket = /tmp/mysql.sock     # 为MySQL客户程序与服务器之间的本地通信指定一个套接字文件(Linux下默认是/var/lib/mysql/mysql.sock文件)

port             = 3306      # 指定MsSQL侦听的端口

key_buffer       = 384M      # key_buffer是用于索引块的缓冲区大小,增加它可得到更好处理的索引(对所有读和多重写)。索引块是缓冲的并且被所有的线程共享,key_buffer的大小视内存大小而定。

table_cache      = 512       # 为所有线程打开表的数量。增加该值能增加mysqld要求的文件描述符的数量。可以避免频繁的打开数据表产生的开销

sort_buffer_size = 2M        # 每个需要进行排序的线程分配该大小的一个缓冲区。增加这值加速ORDER BY或GROUP BY操作。注意:该参数对应的分配内存是每连接独占!如果有100个连接,那么实际分配的总共排序缓冲区大小为100×6=600MB

read_buffer_size = 2M        # 读查询操作所能使用的缓冲区大小。和sort_buffer_size一样,该参数对应的分配内存也是每连接独享。

query_cache_size = 32M       # 指定MySQL查询结果缓冲区的大小

read_rnd_buffer_size    = 8M # 改参数在使用行指针排序之后,随机读用的。

myisam_sort_buffer_size = 64M # MyISAM表发生变化时重新排序所需的缓冲

thread_concurrency      = 8 # 最大并发线程数,取值为服务器逻辑CPU数量×2,如果CPU支持H.T超线程,再×2

thread_cache            = 8 # #缓存可重用的线程数

skip-locking            # 避免MySQL的外部锁定,减少出错几率增强稳定性。

[mysqldump]

max_allowed_packet      =16M # 服务器和客户端之间最大能发送的可能信息包

1.6.客户端连接

 

# 查询当前连接进程

 

showprocesslist;

 

  • 访问mysql的命令格式:

mysql:

-u  username          默认  root

-p                    默认 空

-h  myser_server       默认 loclhost本机

示例:mysql -uroot -p -h 192.168.1.254

退出  \q

连接方式:

linux  socket   server和clinet在同一台服务器

windows  memory  共享内存

网络端  TCP

mysql 客户端:

交互式模式

批处理模式

交互式模式中的命令类别:

客户端命令 : \h  帮助菜单

服务器端命令

语句结束符: 默认为分号;

1.7.数据类型

关系数据库对象:

索引

视图

键(约束)

存储过程

存储函数

触发器

游标

用户

权限

事务

表:

行row  列 field ,column

字段 数据类型  类型修饰(限制)

数值类型

整数类型        字节       范围(有符号)     范围(无符号)          用途 

TINYINT        1字节       (-128,127)          (0,255)        小整数值

SMALLINT       2字节     (-32 768,32 767)       (0,65 535)         大整数值

MEDIUMINT      3字节    (-8 388608,8 388 607) (0,16 777 215)     大整数值

INT或INTEGER   4字节   (-2147 483 648,2 147 483 647) (0,4294 967 295) 大整数值

BIGINT         8字节   (-9 233 372 036854 775 808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值

FLOAT          4字节   (-3.402 823 466E+38,1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38)0,(1.175 494 351 E-38,3.402 823466 E+38) 单精度浮点数值

DOUBLE         8字节 (1.797 693 134 862 3157 E+308,2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 0,(2.225 073858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 双精度浮点数值

DECIMAL 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 依赖于M和D的值 依赖于M和D的值 小数值

字符串类型

字符串类型     字节大小        描述及存储需求

CHAR        0-255字节         定长字符串

VARCHAR     0-255字节         变长字符串

TINYBLOB     0-255字节       不超过 255 个字符的二进制字符串

TINYTEXT     0-255字节       短文本字符串

BLOB        0-65535字节     二进制形式的长文本数据

TEXT        0-65535字节     长文本数据

MEDIUMBLOB   0-16 777215字节 二进制形式的中等长度文本数据

MEDIUMTEXT   0-16 777215字节 中等长度文本数据

LOGNGBLOB    0-4294 967 295字节 二进制形式的极大文本数据

LONGTEXT     0-4294 967 295字节 极大文本数据

VARBINARY(M)                  允许长度0-M个字节的定长字节符串,值的长度+1个字节

BINARY(M)    M                允许长度0-M个字节的定长字节符串

日期和时间类型

类型     大小(字节)     范围              格式         用途 

DATE       4       1000-01-01/9999-12-31 YYYY-MM-DD    日期值

TIME       3       '-838:59:59'/'838:59:59' HH:MM:SS    时间值或持续时间

YEAR       1        1901/2155              YYYY       年份值

DATETIME   8      1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 混合日期和时间值

TIMESTAMP  4      1970-01-01 00:00:00/2037 年某时 YYYYMMDD HHMMSS 混合日期和时间值,时间戳

1.8.Mysql 软件管理

1.8.1.修改mysql字符集为UTF-8的方法:

show variables like "%char%"

在/etc/my.cnf对应如下配置段加入相应命令

[clinet]字段加入default-character-set=utf8   客户端生效

[mysqld]字段加入character-set-server=utf8

[mysql]字段里加入default-character-set=utf8   本地生效

然后重启mysql服务

1.8.2.Mysql常用的两大引擎:MyISAM和InnoDB

MyISAM MySQL5.0 之前的默认数据库引擎,最为常用。拥有较高的插入,查询速度,但不支持事务,支持表锁不支持行锁;

InnoDB事务型数据库的首选引擎,支持ACID事务,支持行级锁定, MySQL 5.5 起成为默认数据库引擎;

BDB源自 Berkeley DB,事务型数据库的另一种选择,支持Commit 和Rollback 等其他事务特性;

Memory所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在 MySQL 重新启动时丢失;

Mysql常用的两大引擎有MyISAM和innoDB,那他们有什么明显的区别呢,什么场合使用什么引擎呢?

MyISAM  类型的表强调的是性能,其执行数度比InnoDB类型更快,但不提供事务支持,如果执行大量的SELECT(查询)操作,MyISAM是更好的选择,支持表锁。

InnoDB   提供事务支持事务,外部键等高级数据库功能,执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表,支持行锁。

表锁和行锁:表锁,指当你插入数据时,其它命令不能插入和操作

行锁,如果要插入一行数据时,会锁定当前行,其它行不影响

1.8.3.查看表使用的引擎:showcreate table test_t0;

MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但不提供事务支持,如果执行大量的SELECT(查询)操作,MyISAM是更好的选择,支持表锁。

InnoDB提供事务支持事务,外部键等高级数据库功能,执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表,支持行锁。

1.8.4.修改MySQL表空间引擎:

设置InnoDB为默认引擎:在配置文件my.cnf中的 [mysqld] 下面加入

default-storage-engine=INNODB 然后重启mysqld服务即可。

修改表引擎方法如下:

altertable t1 engine=myisam;  
alter table t1 engine=innodb;

如果添加innodb引擎报错,需要执行如下命令:

删除/mysql/data目录下的ib_logfile0,ib_logfile1文件即可。

1.8.5.创建索引命令

Alter table用来创建普通索引、unique索引或primary key索引。(我这里以t1表为例来讲解)

alter table t1 add index index_name (name)

alter table t1 add unique (name)

alter table t1 add primary key (name)

或者使用create创建

create index index_name on t1 (name)

create unique index index_name on t1 (name)

删除索引

drop index index_name on talbe_name

alter table t1 drop index index_name

1.8.6.MySQL慢查询

1) 查看当前mysql慢查询状态

show variables like "%slow%";

| log_slow_queries | OFF

| slow_launch_time | 2 |  超过2秒定义为慢查询。

| slow_query_log | OFF |  慢查询关闭状态。

| slow_query_log_file |/data/mysql/var/db-Test2-slow.log | 慢查询日志的文件。

2) 开启慢查询日志方法

临时开启:set globalslow_query_log=on;

永久开启: 在my.cnf中添加,如下:

log-slow-queries = /data/mysql/var/db-Test2-slow.log #日志目录。开启慢日志查询

long_query_time = 0.1   #记录下查询时间查过1秒。

log-queries-not-using-indexes  #表示记录下没有使用索引的查询。

3) mysqldumpslow分析日志

可用mysql提供的mysqldumpslow,使用很简单,参数可-help查看 -s:排序方式。

c , t , l , r 表示记录次数、时间、查询时间的多少、返回的记录数排序;

# ac , at , al , ar 表示相应的倒叙;

# -t:返回前面多少条的数据;

# -g:包含什么,大小写不敏感的;

mysqldumpslow-s r -t 10 /data/mysql/var/db-Test2-slow.log

1.8.7. MySQL数据库配置并发优化

Mysql的优化:一般分为配置的优化、sql语句的优化、表结构的优化、索引的优化,而配置的优化:一般包括系统内核优化、mysql本身配置文件的优化。

1.8.7.1.MySQL常见的优化参数详解:

l  硬件上的优化:

增加内存和提高磁盘读写速度,都可以提高MySQL数据库的查询,更新的速度。另一种提高MySQL性能的方式是使用多块磁盘来存储数据。因为可以从多块磁盘上并行读取数据,这样可以提高读取数据的速度。

  • MySQL参数的优化:

内存中会为MySQL保留部分的缓冲区。这些缓冲区可以提高MySQL的速度。缓冲区的大小都是在MySQL的配置文件中进行设置的。

下面对几个重要的参数进行详细介绍:

1)  key_buffer_size:表示索引缓存的大小。这个值越大,使用索引进行查询的速度就越快。  配置内存的80%

2)  table_cache:表示同时打开的表的个数。这个值越大,能同时打开的表的个数就越多。这个值不是越大越好,因为同时打开的表过多会影响操作系统的性能。

3)  query_cache_size:表示查询缓冲区的大小。使用查询缓存区可以提高查询的速度。这个方式只使用与修改操作少且经常执行相同的查询操作的情况;默认值是0。

4)  Query_cache_type:表示查询缓存区的开启状态。0表示关闭,1表示开启。

5)  Max_connections:表示数据库的最大连接数。这个连接数不是越大越好,因为连接会浪费内存的资源。  参考值为1000

6)  sort_buffer_size:排序缓存区的大小,这个值越大,排序就越快。

7)  Innodb_buffer_pool_size:表示InnoDB类型的表和索引的最大缓存。这个值越大,查询的速度就会越快。这个值太大了就会影响操作系统的性能。内存的80%

附一个真实环境MySQL配置my.cnf内容,可以根据实际情况修改:

[client]

port = 3306

socket = /tmp/mysql.sock

[mysqld]

user = mysql

server_id = 10

port = 3306

socket = /tmp/mysql.sock

datadir = /data/mysql/data1

old_passwords = 1

lower_case_table_names = 1

character-set-server = utf8

default-storage-engine = MYISAM

log-bin = bin.log

log-error = error.log

pid-file = mysql.pid

long_query_time = 2

slow_query_log

slow_query_log_file = slow.log

binlog_cache_size = 4M

binlog_format = mixed

max_binlog_cache_size = 16M

max_binlog_size = 1G

expire_logs_days = 30

ft_min_word_len = 4

back_log = 512

max_allowed_packet = 64M

max_connections = 4096

max_connect_errors = 100

join_buffer_size = 2M

read_buffer_size = 2M

read_rnd_buffer_size = 2M

sort_buffer_size = 2M

query_cache_size = 64M

table_open_cache = 10000

thread_cache_size = 256

max_heap_table_size = 64M

tmp_table_size = 64M

thread_stack = 192K

thread_concurrency = 24

local-infile = 0

skip-show-database

skip-name-resolve

skip-external-locking

connect_timeout = 600

interactive_timeout = 600

wait_timeout = 600

#*** MyISAM

key_buffer_size = 512M

bulk_insert_buffer_size = 64M

myisam_sort_buffer_size = 64M

myisam_max_sort_file_size = 1G

myisam_repair_threads = 1

concurrent_insert = 2

myisam_recover

#*** INNODB

innodb_buffer_pool_size = 16G

innodb_additional_mem_pool_size =32M

innodb_data_file_path =ibdata1:1G;ibdata2:1G:autoextend

innodb_read_io_threads = 8

innodb_write_io_threads = 8

innodb_file_per_table = 1

innodb_flush_log_at_trx_commit = 2

innodb_lock_wait_timeout = 120

innodb_log_buffer_size = 8M

innodb_log_file_size = 256M

innodb_log_files_in_group = 3

innodb_max_dirty_pages_pct = 90

innodb_thread_concurrency = 16

innodb_open_files = 10000

#innodb_force_recovery = 4

#*** Replication Slave

read-only

#skip-slave-start

relay-log = relay.log

log-slave-updates

1.8.8.MySQL版本查询

[root@localhost tmp]# mysql -V

mysql Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (i386) using readline 5.1

[root@localhost tmp]#

1.8.9.Mysql管理软件phpmyadmin   navicat

http://www.phpmyadmin.net/downloads/

安装phpMyAdmin,一个客户端管理工具

1、到官网下载phpMyAdmin-3.5.2.2-all-languages.tar.gz

2、解压 tar -zxvfphpMyAdmin-3.5.2.2-all-languages.tar.gz

3、将解压后的文件夹重命名为phpMyAdmin,放到apache的站点目录下

4、在浏览器中输入http://localhost/phpMyAdmin/index.php即可看到管理界面了。

需要支持php5.5以上版本

配置文件

/var/www/html/mysql/libraries/config.default.php

$cfg['PmaAbsoluteUri'] = '';              # 这里填写phpMyAdmin 的访问网址

$cfg['Servers'][$i]['host'] ='localhost';    # 服务器IP或127.0.0.1  不能使用localhost

$cfg['Servers'][$i]['port'] ='';            # 默认端口3306

$cfg['Servers'][$i]['user'] ='root';       # 默认用户名

fg['Servers'][$i]['password'] ='';       # 密码

$cfg['Servers'][$i]['auth_type'] ='cookie';    # 验证类型

四种模式可供选择,cookie,http,HTTP,config

config方式即输入 phpMyAdmin 的访问网址即可直接进入,无需输入用户名和密码

当该项设置为 cookie,http 或 HTTP 时,登录 phpMyAdmin 需要数据用户名和密码进行验证,具体如下:

PHP 安装模式为 Apache,可以使用 http 和cookie;

PHP 安装模式为 CGI,可以使用 cookie。

  • 错误提示:

修改配置文件中:

$cfg['Servers'][$i]['host'] = 'localhost';

更换成

$cfg['Servers'][$i]['host'] = '127.0.0.1';

  • 错误提示:

phpmyadmin提示:The mbstring extension is missing. Pleasecheck your PHP configuration

yuminstall php-mbstring –y

The mysqliextension is missing. Please check your PHP configuration. See our documentation formore information.

安装yum install php-mysql –y

php增加mysqli扩展

正在运行的php上增加mysqli扩展,基本方法与加载其他扩展一样,就是不用再单独下载扩展包了,php安装包里就自带,找到你当前php运行的版本,我的是php-5.2.10,具体方法如下:

tar -zxf php-5.2.10.tar.gz
cd php-5.2.10/ext/mysqli
/usr/local/php/bin/phpize   ##生成configur文件
./configure–with-php-config=/usr/local/php/bin/php-config–with-mysqli=/usr/local/mysql/bin/mysql_config    ##这里可能会不一样,根据你php和mysql的安装路径而定。
make
make install  ##完成后有以串路径,把他复制下来,一会要用,我的返回是/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613

vi /usr/local/php/lib/php.ini   ##php.ini这里可能也会不一样,有的会在/usr/local/php/etc下,也有在/etc下的。

在最后一行加入如下字段
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/mysqli.so

其中mysqli.so前边的路径就是make install后返回的路径

重启php服务或是apache服务,我这里是apache
/etc/init.d/httpd restart

在php-5.2.10/ext中有很多这样的模块,都可以用以上方法实现。

1.8.10.重新初始数据库

/usr/local/mysql/bin/mysql_install_db--user=mysql --datadir=/usr/local/mysql/var --basedir=/usr/local/mysql   # 初始化数据库    --datadir=指定数据目录   --basedir=指定数据基础目录

1.8.11.修改mysql用户密码

Mysqladmin –uroot  password “123456”

update user set password=password("123456")where user='root';

flush privileges;

1.9.Mysql 数据库管理

1.9.1.创建数据库  Create Database

create database db_name;

create database if not exists db_name   如果不存在就创建,不报错

1.9.2.查看数据库  Show Databases

show databases;

1.9.3.删除数据库  Drop Database

drop datebase [if exists] db_name;

注:删除无法恢复

Drop database bbs; # 删除bbs数据库

1.10.Mysql 数据表操作

1.10.1.创建表:Createtable tb_name (字段名 数据类型)

use mydb    # 使用哪个库  类型于sql中先选择数据库名

create table [if exists] tb_name(col1,col2,...字段名)

create table [if exists]tb_name(col1,col2,...字段名) type=inodb  # 创建数据库并指定引擎

例:createtable students(name char(20) not null, age char(10) unsigned,sex char(10)not null);

Name

Age

sex

1.10.2.查看表: showtables

查看库中的表:  show tables;

查年表中的结构: desc tabale_name;

1.10.3.删除表:                                         Droptable tb_name

drop table [if exists] tb_name;

droptable bbs; # 删除bbs表

1.10.4.修改表:Altertable ………….

alter table tb_name;

  • 修改 modify    改属性  改数据类型

  • 改变 change    改值    改名称

  • 增加 add

  • 删除 drop

  • 增加:add

语法格式: alter table students add 字段名varchar(100)   # 添加字段名指定数据类型varchar

实例: alter talbe students add telphone int(20);  # 修改students表增加telphone列,

  • 修改值:change

例: ALTER TABLE students CHANGE “原字段1“ ”现字段2“ VARCHAR(100) AFTER Name;

# 修改”原字段1”的字段名和类型,添加到Nmae字符之后

# 要指定源字段,新字段,新类型

  • 修改属性:modify

例: alter tableusers modify tel text(10);

# 修改tel字段的字段类型

  • 删除列: drop

   例:altertable user drop id;

# 删除user表中的id列

1.10.5.清空表:deletefrom tables

# 清空表的内容

delect from jf_t1;

1.10.6.复制一张表 createtables tb_name select * from tb_name

# 复制一张表和数据:

create tablenew_table select * from old_table;

# 复制一张表不复制数据

create tablenew_table select * from old_table where 0 ;

1.10.7.重命名表  rename table

RenameTABLE tb_name TO new_tb_name

altertable rename tb_name to new_table   重命名表

1.11.Mysql 数据管理

1.11.1.插入数据:Insertinto tb_name …  values …

  • 指定字段插入:

insert  into  tb_name (col1,col2,...)values  ('string',num,...);

# 插入数据 (字段名)  VALUES值 (‘字符串’, 数值1-9)

字符串要单引  数值不需要

insert  into  tb_name (col1,col2,...)values  ('string',num),('string',num)

# 可同时插入多行数据

例: insert into student (name,sex)value ('zhongliang'.‘m’),(‘xiaoliang’,'f');

# 插入前先查询表的结果DESCtb_name  看哪些是必须插入值的

# 未指定的字段代表是允许为null的,可以不在字段位写,按顺序写上不允许为空的字段

  • 不指定字段插入

不指定字段插入,代表全部都插入值

name

age

sex

telnet

例:insert into students values ('zhongliang',20,'m',13417557083);

语句插入1000条

for i in 'sql 1 10000' ; mysql -e "usebbs;inster into t1 values ('zhonglaing','20','man');";done

1.11.2.查询内容:select *from table;

# 显示表的所有字段

describe user;

select 字段  frometb_name where  条件

  • select * from user;  # 查看所有慎用

selectcount(*) from user;  统计多少行

select * from user limit 10; 看10行  # 在生产环境中不要查所有,应为当上千条数据时会卡死

select * from user where 列名>30;   #  查询某列的值大于30的

select * from user where 列名 like ‘%abc%’;   # 查询某列的值包含匹配abc字符的所有内容

# 显示user表的第一行内容

select *from user limit 1;

select *from user where name=""  limit10\G;

selectname from user where nam="";

# 内容匹配查询

select *from user name link "%zhong%";

select *from user name link "%zhong%" and name=xxx ;

# 排列显示,

select * from user where User='root'\G;

1.11.3.修改数据:Updatetb_name Set

updatetb_name set 列名=“新值” where  列名=“value”;    # id

例:update student set tel=13417557083where name=zhongliang;

# 修改zhongliang用户的tel电话

1.11.4.删除数据:DeleteFrom tb_name where

deletefrom tb_name where id='value';

例:delete form student wheretel=13417557083

1.12.Mysql 数据库备份还原

Xtranbackup  备份工具

1.12.1.Mysql备份数据库

备份数据库

mysqldump -uroot -p --all-databases >all.sql    # 备份服务器中所有的库

# 备份mysql 使用root用户,密码123456 备份到/tmp/

mysqldump -uroot -p123456 mysql  > /tmp/mysql2016.sql

直接将MySQL数据库压缩备份
mysqldump  -uroot -p databasename | gzip> backupfile.sql.gz

同时备份多个MySQL数据库
mysqldump -uroot -p –databases databasename1databasename2 databasename3 > multibackupfile.sql

仅仅备份数据库结构
mysqldump –no-data –databases databasename1 databasename2databasename3 > structurebackupfile.sql

C. 跨主机备份

使用下面的命令可以将host1上的sourceDb复制到host2的targetDb,前提是host2主机上已经创建targetDb数据库:

mysqldump -uroot -p sourceDb | mysql –uroot–p  --host=192.168.1.100 -C targetDb

-C指示主机间的数据传输使用数据压缩

目标主机必须gran授权允许源主机连接

1.12.2.Mysql恢复数据库

# 恢复库

mysql> mysql –uroot  zhongliang < /tmp/zhongliang.sql;

# 恢复数据库先创建数据库名,再恢复

还原压缩的MySQL数据库
gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename

1.12.3.Mysql备份表

Mysqldump –uroot –p zhongliang user > /tmp/user.sql;

备份MySQL数据库某个(些)表
mysqldump -hhostname -uusername -ppassword databasename specific_table1specific_table2 > backupfile.sql

1.12.4.Mysql恢复表

Mysql> source /tmp/mysql.sql;

# 在进入数据库中执行

1.12.5.查询数据路径

数据库默认存放在/var/lib/mysql/

1.13.Mysql 权限管理

1.13.1.创建用户

Create  user  ‘username’@’Iphost’  identified by  'password'

例: create  user ‘zhongliang'@'%' identified by  '123456'

1.13.2.删除用户

drop user 'username'@'host'

host:

ip:

hostname:

network

通配符:   _:匹配任意单个字符,192.168.0._  代表0-9

%:匹配任意字符

zhongliang@'%'

1.13.3.设置权限

例:grant allprivileges on mydb.* to 'zhongliang'@'%'

# 给zhongliang所有权限

访问授权:

select  查询

insert  插入

delete  删除

update  更新

create   创建

alter    修改

drop     删除

references 外键

create temporary table 临时表

index    索引

create view 创建视图

show view 查询视图

create routine  存储过程

alter routine

execute

grant select(user_id,username) on smp.users

grant select(id, se, rank) ontestdb.apache_log

grant all(所有权) on [(数据库)*.*(表)] to (用户)root@'IP地址' identified by '密码';

grant all on mysql to root@127.0.0.1identified by ‘123456';

# 刷新权限

flush privileges;

1.13.4.查询权限

Show grantsfor 'zhongliang'@'%'

# 查询某个IP是否有授权

select * from mysql.user whereHost=”192.168.1.100” \G

1.13.5.取消权限

Revoke allon mysql.* from ‘root’@’localhost’;

1.13.6.Mysql忘记密码如何破解、

道先停止Mysql服务,然后以跳过权限方式后台启动

/usr/bin/mysqld_safe --user=myusql--skip-grant-tables &      #--skip-grant-tables 跳过权限表启动

Mysql 进入数据库

update user set password=password('123456')where user='root' and host=’ ’;   修改密码

加了and host可以只删一条,否则是root都删了

Flush privileges;

1.13.7.修改服务器root的密码:

Mysqladmin –uroot password ‘123456’

mysqladmin –uroot –p123456password   newpassword    ;

1.13.8.root权限丢失怎么解决?

更新的MYSQL.USER表的所有字段中为N的为Y就可以了。

update user set Select_priv ='Y' where user = 'root';
update user set Insert_priv ='Y' where user = 'root';
update user set Update_priv ='Y' where user = 'root';
update user set Delete_priv ='Y' where user = 'root';
update user set Create_priv ='Y' where user = 'root';
update user set Drop_priv ='Y' where user = 'root';
update user set Reload_priv ='Y' where user = 'root';
update user set Shutdown_priv ='Y' where user = 'root';
update user set Process_priv ='Y' where user = 'root';
update user set File_priv ='Y' where user = 'root';
update user set Grant_priv ='Y' where user = 'root';
update user set References_priv ='Y' where user = 'root';
update user set Index_priv ='Y' where user = 'root';
update user set Alter_priv ='Y' where user = 'root';
update user set Show_db_priv ='Y' where user = 'root';
update user set Super_priv ='Y' where user = 'root';
update user set Create_tmp_table_priv ='Y' where user = 'root';
update user set Lock_tables_priv ='Y' where user = 'root';
update user set Execute_priv ='Y' where user = 'root';
update user set Repl_slave_priv ='Y' where user = 'root';
update user set Repl_client_priv ='Y' where user = 'root';
update user set Create_view_priv ='Y' where user = 'root';
update user set Show_view_priv ='Y' where user = 'root';
update user set Create_routine_priv ='Y' where user = 'root';
update user set Alter_routine_priv ='Y' where user = 'root';
update user set Create_user_priv ='Y' where user = 'root';
update user set Event_priv ='Y' where user = 'root';
update user set Trigger_priv ='Y' where user = 'root';

1.14.Mysql 主从同步

1.14.1.主从原理

mysql主从同步的原理:

1、在master上开启bin-log日志,记录更新,插入,删除的语句。

2、必须开启三个线程,主上开启io线程,从上开启io线程和sql线程。

3、从上io线程通过授权连接master,master通过io线程检查到slav的请求的日志、postsion点位置。

4、master将这些相应的请求内容发送给slave,slave收到后,将内容存放在中继日志realy_log里面,同时生成写入一个master-info,写入日志记录和pos点。

日志记录同步的点。

5、slave的sql线程检查到realy-log日志更新的内容,并将更新的内容解析成sql语句然后在本地去exec执行。

6、主从同步是属于异步方式。

1.14.2.MySQL主从同步配置

  • 配置主(master)

  • 修改添加

server-id=1

log-bin=mysql-bin     # mysql-bin日志前缀,可自定义

binlog-do-db=db1,db2  # 需要同步的库

binlog-ignore-db=db1,db2 # 忽略不同步的库

# binlog两参数2选1都不写全部同步

2.  修改配置文件后,重启mysql   service mysqld restart

3.  grant replication slave on *.* to root@'localhost'identified by '123456';  # 创建同步用户

Flush privileges;

4.  show master status; # 一定要记住前两列的内容,

| File             | Position  | Binlog_Do_DB   |

mysql-bin.0000007    106

  • 设置从(slave)

1. vi/data/mysql/my.cnf

server -id =2   # 这个数据不能和主一样

以下可选参数:

replicate-do-db=db1,db2

replicate-ignore-db=db1,db2

2. 进入mysql

执行:slave stop;

change master to

master_host='192.168.1.131',master_user='bbs',master_password='123456',master_log_file='mysql-bin.000005',master_log_pos=1724;

执行:slave start;

3. 从上查看从的状态:  showslave status\G;

Slave_IO_Running: No

Slave_SQL_Running: Yes

Last_IO_Errno: 1593

Last_IO_Error:     # 检查是否因为有错误NO

# 检查以上二项参数是否都为YES,

vi /root/.mysql_bistory   # 创建mysql历史命令

ln -s dev/noull > mysql_history   # 保户命令历史,创建成空文件

系统历史命令清除  bashrc history -c

1.14.3. MySQL主从同步故障解决方案

1.14.3.1.Mysql主从同步,master突然down机,如何恢复:

1、在slave数据库上,更改授权网站数据库IP为slave。(这里可以种用/etc/host文件能修改服务器IP和域名的对应,这样只要修改host文件,不需要修改服务器的授权IP)

2、修改网站服务器config目录下:

config_global.phpconfig_ucenter.php 把原先masterip改成slave ip地址。

3、重启httpd服务,切换成功。

4、在master上创建数据库,在slave上将数据库导出,在master上导入数据库

5、添加数据库grant授权用户,

6、如果添加授权用户和密码是一样,后面可省略,否则在slave重新设置连接change

7、stop slave,再开始start slave;  检查show slave status\G;是否已OK

1.14.3.2.忽略错误后,继续同步

该方法适用于主从库数据相差不大,或者要求数据可以不完全统一的情况,数据要求不严格的情况

解决:

stop slave;

set global sql_slave_skip_counter =1;    # 1指的是跳一步,可以自定义多少步

start slave;

之后再用mysql>show slave status\G  查看:

1.14.3.3.重新做主从,完全同步

该方法适用于主从库数据相差较大,或者要求数据完全统一的情况

解决步骤如下:

1) 进入mater,进行锁表,

mysql> flush tables with read lock;

注意:该处是锁定为只读状态,语句不区分大小写

2) 进行数据备份

[root@server01 mysql]#mysqldump -uroot -p  mysql> mysql.sql

3) 查看master 状态

mysql> showmaster status;

+-------------------+----------+--------------+-------------------------------+

| File              | Position | Binlog_Do_DB |Binlog_Ignore_DB              |

+-------------------+----------+--------------+-------------------------------+

|mysqld-bin.000001 |     272 |              |

+-------------------+----------+--------------+-------------------------------+

4) 把mysql备份文件传到从库机器,进行数据恢复

[root@server01mysql]#scp mysql.sql root@192.168.1.13:/tmp/

5) 停止slave的状态

mysql> stopslave;

6) 在slave上恢复数据库

mysql> source /tmp/mysql.sql

7) 设置从库同步用户

changemaster to master_host = '192.168.1.12',master_user = root,master_password='123456', master_log_file = 'mysqld-bin.000001', master_log_pos=272;

8)重新开启从同步

mysql> startslave;

9)查看同步状态

mysql> showslave status\G  查看:

Slave_IO_Running:Yes

Slave_SQL_Running:Yes

10)在master上解锁:mysql>unlocktables;

1.14.3.4.mysql-binlog数据恢复:

查看binlog日志的命令:mysqlbinlog   mysql-bin.000001|more

备份:cp   mysql-bin.000001  /data/back/20150411/

恢复1: mysqlbinlog --start-position=215 --stop-position=336 mysql-bin.000001 | mysql -uroot -p

# 注,在勿操作的结点前面开始恢复,stop的post点的肖前点的记录不会执行!!!

恢复2:mysqlbinlog--start-datetime="2016-10-18 22:18:25"--stop-datetime="2016-10-18 22:28:38" log.000002 >/home/mysql.sql

use 进入到库里

source /home/mysql.sql

1.14.4.MySQL主主同步配置

双机热备的概念简单说一下,就是要保持两个数据库的状态自动同步。对任何一个数据库的操作都自动应用到另外一个数据库,始终保持两个数据库数据一致。这样做的好处多。 1. 可以做灾备,其中一个坏了可以切换到另一个。 2. 可以做负载均衡,可以将请求分摊到其中任何一台上,提高网站吞吐量。  对于异地热备,尤其适合灾备。

在主从同步已经建好的情况下:

  • Slave设置

  • 在slave中创建用户

grant replication slave on *.* to root@'127.0.0.1'identified by '123456';  # 创建同步用户

  1. flush tables with read lock;   # 锁定mysql写入,设为只读

  1. 打开slave上的 /etc/my.cnf, 开启slave的binarylog:

Log-bin=mysql-bin

  1. 如果数据是同步的,我们不需要导数据,直接查看slave的状态:

Show master status\G;

#记下File和Position两个值

  • Master设置

  1. 启动同步 设置连接参数

change master tomaster_host='127.0.0.1',master_port=3306,master_user=root,master_password='123456',

master_log_file='mysql-bin.000007',master_log_pos=106;

  1. 然后重启mysql服务。然后查看,slave状态是否正常:

Show slave status\G;

1.14.5.MySQL主主同步故障解决方案

图中出现了两个No。

Slave_IO_Running: No

Slave_SQL_Running: No

说明slave没有成功, 即,从B到A的同步没有成功。 我们去查看mysql错误日志,前面说过位置:

找到  机器名.err 文件,打开看看:

看图中的error信息。  说找不到中继日志文件。

这是因为我们在配置A的中继文件时改了中继文件名,但是mysql没有同步。解决办法很简单。

先停掉mysql服务。  找到这三个文件,把他们删掉。一定要先停掉mysql服务。不然还是不成功。你需要重启一下机器了。或者手动kill mysqld。

好了,启动mysql之后。我们在来检查一下slave状态:

1.15.Mysql 常见故障

故障1

ERROR 2002 (HY000): Can't connect to localMySQL server through socket '/var/lib/mysql/mysql.sock' (2)

故障原因:服务未启动   service mysqld restart

[Warning] '--skip-locking' is deprecated and will be removed ina future release. Please use '--skip-external-locking' instead.

错误提示:
101009 15:40:10 mysqld_safe Starting mysqld daemon with databases from /var/db/mysql

将/etc/my.cnf里面的skip-locking 改为skip-external-locking

#interactive-timeout 能数值调大

error connecting to master'zhongliang@192.168.207.129:3306' - retry-time: 60  retries: 86400

解决方案:密码错误,用户不存在等

初始数据库故障

'--skip-locking' is deprecated and will be removed in a futurerelease. Please use '--skip-external-locking' instead.

解决方法:

将/etc/my.cnf里面的skip-locking改为skip-external-locking
重启mysql

/usr/local/mysql/bin/mysqld: File ‘./mysql-bin.index' not found (Errcode: 13)

/var的权限不够

Mysql启动故障

mysql 错误 You need to use –log-bin to make –binlog-formatwork

出现此错误的原因是 你注释掉了

/etc/my.cnf 文件中的

log-bin=MySQL-bin ,但是没有注释掉binlog_format 这条

解决办法:编辑my.cnf文件,将binlog_format 这条注释掉.

1.15.1.主从同步故障

mysql> showmaster status\G;

***************************1. row ***************************

File: mysql-binlog.000001

Position: 309

Binlog_Do_DB:

Binlog_Ignore_DB:

1 row in set (0.00sec)

ERROR:

No query specified

Got fatal error1236 from master when reading data from binary log: 'Could not find first logfile name in binary log index file'

转载于:https://blog.51cto.com/zhongliang/1878981

Linux MYSQL 数据库相关推荐

  1. mysql 磁盘限额_Linux运维知识之为Linux MySQL数据库设置磁盘限额

    本文主要向大家介绍了Linux运维知识之为Linux MySQL数据库设置磁盘限额,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助. 因为MySQL数据库本身没有磁盘限额的功能,我 ...

  2. linux mysql 磁盘_Linux运维知识之为Linux MySQL数据库设置磁盘限额

    本文主要向大家介绍了Linux运维知识之为Linux MySQL数据库设置磁盘限额,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助. 因为MySQL数据库本身没有磁盘限额的功能,我 ...

  3. Linux Mysql 数据库基础

    目录 Linux Mysql 数据库基础 一.数据库 数据库简介 数据库的分类 数据库的发展史 数据库系统发展阶段 DBMS 数据库管理系统 数据库管理系统的优点 数据库管理系统的基本功能 数据库系统 ...

  4. Linux MySQL数据库的备份

                  Linux MySQL数据库的全库和单库备份 MySQL数据库的备份重要性不用多说,备份方式也很多,但常用的是MySQL自带的备份程序MySQLdump,该程序一键备份,一 ...

  5. Linux MySQL数据库冷迁移采坑记录

    Linux MySQL数据库冷迁移采坑记录 当前文件系统已满,需要将MySQL默认路径迁移到新文件系统下. MySQL数据库文件原位置:/var/lib/mysql . 要移动至:/mysql/mys ...

  6. linux mysql 10061_详解使用navicat连接远程linux mysql数据库出现10061未知故障

    使用使用navicat连接远程linux mysql数据库出现10061未知故障,设置使用ssh连接后出现2013故障 本机环境:win10 navicat premium mysql数据库主机环境: ...

  7. java linux mysql数据库_Linux Java连接MySQL数据库

    Linux(Ubuntu平台)Java通过JDBC连接MySQL数据库,与Windows平台类似,步骤如下: 解压 jdbc: tar -zxvf mysql-connector-java-5.1.1 ...

  8. linux mysql数据库优化_MySQL_Linux下MySQL数据库性能调优方法,以下的环境具备一定的代表性 - phpStudy...

    Linux下MySQL数据库性能调优方法 以下的环境具备一定的代表性,可以说是中小企业一般配置和工作环境.希望通过本文能让大家理解Linux下MySQL数据库性能调优方法. 硬件准备环境: 硬盘: 1 ...

  9. mysql 磁盘限额_为Linux MySQL数据库设置磁盘限额

    因为MySQL数据库本身没有磁盘限额的功能,我们可以限制Linux自带的quota工具为mysql进行磁盘限额. 1.首先需要为/home自动挂载一个分区,并且设置为quota磁盘格式.我们以用户fo ...

最新文章

  1. 希尔排序的java算法_Java算法系列篇 【希尔排序】
  2. fanuc机器人码垛编程实例_FANUC 机器人码垛编程详细讲解 记得收藏!
  3. ios 不被遮挡 阴影_解决ios10导航栏底部阴影线条隐藏失效问题
  4. VisualVM远程监控Java
  5. 要使一个问题能够用计算机解决,如何正确并解决在使用计算机中的问题?
  6. 如何清除vsphere主机提示“此主机当前没有管理网络冗余”
  7. iOS autoreleasePool 深入理解
  8. VmPlayer上设置主机和windows虚拟机文件夹共享
  9. SPSS学习笔记(一)判断是否服从正态分布
  10. matlab 填补空洞,OpenCV空洞填充算法
  11. ih5连接mysql数据库_iH5高级教程:H5数据应用,数据库基础
  12. 逍遥模拟器(8.0.x版本,系统安卓7.1)安装xposed
  13. 区块链数字货币应用场景不同决定了价值空间
  14. Python wmi Cookbook 中文翻译
  15. linux系统周几的格式是,linux cal命令显示日历信息周几天数差
  16. 15K服务器硬盘对齐分数,服务器硬盘的IOPS计算方法
  17. java计算机毕业设计-线上自助旅游报名网-源程序+mysql+系统+lw文档+远程调试
  18. (zhuan) 自然语言处理中的Attention Model:是什么及为什么
  19. git 和 linux、_linux和git拔掉
  20. 自动驾驶行业观察之2023上海车展-----智驾供应链(1)

热门文章

  1. onnx模型部署 python_onnxruntime模型部署流程
  2. Codeforces 920E-Connected Components? (set,补图,连通块)
  3. EF获取多个数据集以及MySQL分页数据查询优化
  4. 欢迎广大测试人员,加入微信群,了解自动化测试的框架,检查点,参数化。...
  5. SSAS(分析服务)优化手册
  6. 九大排序算法Java实现
  7. 转载、Python的编码处理(二)
  8. hduoj 2546饭卡
  9. 解决 PowerDesigner 错误 The generation has been cancelled…
  10. C/C++串口通信原理及读写与操作