欢迎光临
我们一直在努力
共 125 篇文章

标签:服务器

linux-centos下通过pid查看进程的绝对路径的教程-

linux-centos下通过pid查看进程的绝对路径的教程

今天服务器CPU突然占用率很高 、进行查看 是mysql 占用了很大的进程,。如何查找mysql目录呢 。 netstat -nlp pid拿到15330,然后 cd /proc/15330 由于linux在启动一个进程时,会在/proc下创建一个以PID命名的文件夹,该进程的信息存在该文件夹下。在该文件夹下有一个名为exe的文件,该文件指向了具体的命令文件,所以可以通过ls -l或者ll命令根据ps或top查到的PID查找命令的绝对路径,如下图: ll 这里的exe我们就能知道mysql的绝对路径啦。阿里云、腾讯云服务器优惠店铺  

赞(0)adminadminunix 阅读(1927)去评论
阿里云磁盘扩容 unexpected output in sfdisk解决方法-

阿里云磁盘扩容 unexpected output in sfdisk解决方法

现在使用阿里云 腾讯云的服务器用户越来越多,很多用户只有系统盘一个磁盘。时间长了以后,会造成系统盘不够使用的情况。然后进行扩容 参考阿里云扩容教程 有时会进行报错 :unexpected output in sfdisk –version [sfdisk,来自 util-linux 2.23.2] 扩容教程:https://www.xp8.net/uncategorized/3908.html 这是磁盘扩容之前: 详细操作在我之前安装的文章中有详细讲解.   进行安装后^_^ [root@kuaijidao ~]# growpart /dev/vda 1 unexpected output in sfdisk –version [sfdisk,来自 util-linux 2.23.2] 突然这个问题…………… 解决: 执行  LANG=en_US.UTF-8 查看后现在执行成功……….. 现在依旧已经完成了服务器扩容……….. 阿里云 腾讯云服务器相关问题 购买优惠 可加Q 690624 进行咨询

赞(0)adminadminunix 阅读(2944)去评论
2020年腾讯云双11活动腾讯服务器优惠秒杀抢购-腾讯云代理-

2020年腾讯云双11活动腾讯服务器优惠秒杀抢购-腾讯云代理

前言: 一年一度的双11 活动来了。腾讯云抢先发布。多款企业个人秒杀活动 推荐以下配置: 个人: 2核4G 3M 3年 698 4核8G 5M  200G数据盘 3年2010 企业请看下面活动页 推荐: 我们推荐腾讯云代理商 购买服务器折上折、多了一道售后服务。QQ 690624 V 18838889666 活动地址:https://curl.qcloud.com/vSTWKye7  推荐: 我们推荐腾讯云代理商 购买服务器折上折、多了一道售后服务。QQ 690624 V 18838889666 活动地址:https://curl.qcloud.com/vSTWKye7 推荐: 我们推荐腾讯云代理商 购买服务器折上折、多了一道售后服务。QQ 690624 V 18838889666 活动地址:https://curl.qcloud.com/vSTWKye7

腾讯云centos系统添加弹性IP并配置多IP教程分享-

腾讯云centos系统添加弹性IP并配置多IP教程分享

博客好多天没有更新了。每天忙完工作。也都不想写了。。趁着在老家的休息的功夫。整理下常用的教程分享 腾讯云的活动力度越来越大。2G 4G  6M带宽 3年才1499  。还可以配置多IP 那就搞吧 。  关联代理 还有价格优惠 关联链接:http://t.cn/AipEk6xp 1)点击实例名 2)分配内网ip 3)绑定弹性公网ip 4)修改网卡配置文件 ### 备份 [root@VM_1_62_centos ~]# cp /etc/sysconfig/network-scripts/ifcfg-eth0{,.bak} ### 修改网卡配置 [root@VM_1_62_centos ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 # Created by cloud-init on instance boot automatically, do not edit. # # 此处修改为static BOOTPROTO=static DEVICE=eth0 # # 注释此行 # HWADDR=52:54:00:8a:7a:64 # # 添加如下几行 # # 配置主ip IPADDR0=10.2.1.62 NETMASK0=255.255.255.0 # 配置辅助ip1 IPADDR1=10.2.1.101 NETMASK1=255.255.255.0 # 配置辅助ip2 IPADDR2=10.2.1.102 NETMASK2=255.255.255.0 # 配置网关 GATEWAY=10.2.1.1 # NM_CONTROLLED=no ONBOOT=yes TYPE=Ethernet USERCTL=no PERSISTENT_DHCLIENT=yes ### 重启网卡 [root@VM_1_62_centos ~]# systemctl restart network.service ### 查看ip [root@VM_1_62_centos ~]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen...

赞(0)adminadminunix 阅读(3990)去评论

使用Ubuntu18.04和16.04LTS上的Let’s Encrypt保护Nginx教程-学派吧

本篇文章介绍的内容是关于在Ubuntu系统上安装let’s encrypt客户端,并为在Nginx Web服务器上运行的域颁发SSL证书。 步骤1:先决条件 在开始执行此任务之前,我假设已经: 使用sudo权限shell访问运行的Ubuntu系统,域名已注册并指向服务器的公共IP地址。对于本篇文章我们使用example.com和www.example.com,它指向我们的服务器,运行nginx web服务器,并为端口80配置virtualhost(例如.com)和www.example.com。 步骤2:安装let’s encrypt客户端 可以下载certbot auto-let’s encrypt客户端并将其保存在/usr/sbin目录中。请使用以下命令执行此操作。 $ sudo wget https://dl.eff.org/certbot-auto -O /usr/sbin/certbot-auto $ sudo chmod a+x /usr/sbin/certbot-auto 步骤3:为nginx发布ssl let’s encrypt在多个挑战中自动执行域验证(DV)。一旦证书颁发机构(CA)验证了您的域的真实性,将颁发SSL证书。 不需要为ssl/https创建virtualhost,我们let’s encrypt来创建它。只需要为端口80创建虚拟主机。 $ sudo certbot-auto --nginx -d example.com -d www.example.com 上面的命令将提示输入电子邮件地址,该地址用于发送与SSL续订和到期相关的电子邮件警报。另外,还有几个问题。完成后,它将颁发一个SSL证书,并在你的系统上创建一个新的虚拟主机配置文件。 步骤4:配置SSL自动续订 最后,在服务器crontab上配置以下命令,以便在需要时自动续订SSL证书。 0 2 * * * sudo /usr/sbin/certbot-auto -q renew 本篇文章到这里就已经全部结束了,欢迎关注学派吧

赞(0)adminadminunix 阅读(2899)去评论

如何仅在Nginx Web服务器中启用TLS1.2教程-学派吧

SSL2.0和SSL3.0具有许多已知的漏洞,如POODLE(CVE-2014-3566),这就是为什么最新的浏览器已经删除了对这些易受攻击的协议的支持。建议你将服务器移至使用TLS版本,特别是TLS 1.2。本篇文章将介绍关于使用Nginx Web服务器启用TLS 1.2。 仅在Nginx中启用TLS1.2 在服务器上的配置文件中编辑域的Nginx服务器块部分,并添加如下ssl_protocols设置。这将在Nginx服务器块中仅启用TLSv1.2协议。 ssl_protocols TLSv1.2; 使用ssl的最简单nginx服务器块如下所示 server { listen 443 ssl; server_name example.com; ssl_protocols TLSv1.2; ssl_certificate /etc/pki/tls/cert.pem; ssl_certificate_key /etc/pki/tls/private/privkey.pem; 同时启用TLS 1.1和1.2 poodle漏洞从sslv3扩展到tls 1.0和1.1。因此,我们不建议将其用于生产服务器,但如果想为开发启用它的话。可以执行以下配置。 ssl_protocols TLSv1.2 TLSv1.1; 更改配置文件后,重新启动nginx服务以应用新设置。 本篇文章到这里就已经全部结束了,欢迎关注学派吧

赞(0)adminadminunix 阅读(5316)去评论

如何在Tomcat中创建VirtualHost的教程分享-学派吧

本篇文章介绍的内容是关于如何在Tomcat中创建VirtualHost(虚拟主机),下面我们来看具体的内容。 为什么选择虚拟主机? 虚拟主机允许我们在一台服务器上承载多个域(网站)。它是多个主机帐户之间资源共享的概念。虚拟主机的最佳用途是共享主机服务器,多个用户可以在一台服务器上承载多个网站。 安装细节 我们已经为Tomcat主机服务创建了一个IP为192.168.1.100的Linux服务器。已安装Tomcat 8并配置为在端口80上运行。之后我们使用Tomcat Admin面板在tomcat上部署了两个java Web应用程序。现在两个应用程序都在以下URL上运行 http://192.168.1.100/myapp1 http://192.168.1.100/myapp2 现在我们想在主域名上运行这两个Web应用程序,例如example.com和mydomain.org。这样最终用户就可以使用主域名访问Web应用程序。 在Tomcat中创建虚拟主机 要在Tomcat中创建虚拟主机,首先,找到Tomcat安装目录,然后在收藏夹编辑器中编辑config/server.xml或conf/server.xmlfile。然后为应用程序创建虚拟主机。以下虚拟主机包括: 第一个域名为example.com的应用程序和/ opt / tomcat / webapps / myapp1文档根目录。 第二个应用程序使用域名mydomain.org和/ opt / tomcat / webapps / myapp2文档根目录。 <Host name="example.com" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Alias>www.example.com</Alias> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="example_access_log" suffix=".txt" pattern="%h %l %u %t %r %s %b" /> <Context path="" docBase="/opt/tomcat/webapps/myapp1" debug="0" reloadable="true"/> </Host> <Host name="mydomain.org" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Alias>www.mydomain.org</Alias> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="mydomain_access_log" suffix=".txt" pattern="%h %l %u %t %r %s %b" /> <Context path="" docBase="/opt/tomcat/webapps/myapp2" debug="0" reloadable="true"/> </Host> 重新启动Tomcat服务 在Tomcat中添加虚拟主机之后,我们需要重新启动Tomcat服务。使用tomcat init 重新启动它,或者如果不必为tomcat初始化service,请从tomcat安装目录执行以下命令。 在Tomcat中添加虚拟主机后,我们需要重启Tomcat服务。使用Tomcat init service重新启动它,或者如果不必为Tomcat执行init service,可以从tomcat安装目录执行以下命令。 # ./bin/shutdown.sh # ./bin/startup.sh 【相关推荐:Linux视频教程】 以上就是如何在Tomcat中创建VirtualHost(虚拟主机)的详细内容,更多请关注php中文网其它相关文章!

赞(0)adminadminunix 阅读(2728)去评论

如何在Lighttpd Server中配置SSL的教程分享

所有使用SSL运行的站点都在默认端口443上使用了https协议。SSL通过加密服务器和客户端之间的数据来提供安全的数据通信。 在我们之前的文章中,我们已经介绍了如何在CentOS/RHEL系统中安装LightTPD和创建虚拟主机。本文将继续介绍在LightTPD服务器中配置SSL。对于本篇文章中的示例,我们使用的是自签名证书。 如果要在apache/httpd中查找configure ssl,那么可能需要阅读本篇文章。 步骤1:创建证书签名请求(CSR) 对于创建SSL证书,第一个要求是创建私钥和CSR。CSR是一个文件,其中包含有关域的所有详细信息,包括公钥。首先创建一个目录,在其中创建CSR和密钥。 # mkdir /etc/lighttpd/ssl/ # cd /etc/lighttpd/ssl/ 现在使用以下命令创建CSR和密钥文件。根据域更改文件名example.com.key和example.com.csr。此命令将要求输入有关您的域的信息。了解有关创建CSR的更多信息。 # openssl req -new -newkey rsa:2048 -nodes -keyout example.com.key -out example.com.csr Generating a 2048 bit RSA private key ....+++ ...............+++ writing new private key to 'example.com.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]:IN State or Province Name (full name) []:Delhi Locality Name...

赞(0)adminadminunix 阅读(2807)去评论

分享如何使用Yum在CentOS和RHEL上安装Lighttpd Web服务器教程

Lighttpd是一种适合在生产环境中运行的高性能Web服务器。它是高度优化,安全且非常灵活的Web服务器;与其他Web服务器相比,LightTPD使用的内存和CPU非常低。其事件驱动架构针对大量并行连接进行了优化(保持活跃状态) Lighttpd为一些流行的Web 2.0站点提供了支持。它提供了高速IO基础设施,使它们能够在相同的硬件上扩展好几倍。这是在考虑未来网络的情况下开发的,如:更快的FastCGI、COMET符合mod_mailbox、异步IO。 可以按照以下步骤在基于RHEL的系统上安装Lighttpd。 步骤1:添加EPEL存储库 EPEL yum存储库拥有最新的Lighttpd包,首先在你的系统中添加EPEL yum存储库。 # rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm 步骤2:安装LightTPD服务器 使用yum包管理器安装lighttpd # yum install lighttpd lighttpd-fastcgi Loaded plugins: fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile * base: mirror.nbrc.ac.in * epel: mirrors.ispros.com.bd * extras: mirror.nbrc.ac.in * updates: mirror.nhanhoa.com Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package lighttpd.i686 0:1.4.35-1.el6 will be installed ---> Package lighttpd-fastcgi.i686 0:1.4.35-1.el6 will be installed --> Processing Dependency: spawn-fcgi for package: lighttpd-fastcgi-1.4.35-1.el6.i686 --> Running transaction check ---> Package spawn-fcgi.i686 0:1.6.3-1.el6 will be installed --> Finished Dependency Resolution Dependencies Resolved =================================================================================================== Package Arch Version Repository Size =================================================================================================== Installing: lighttpd i686 1.4.35-1.el6 epel 300 k lighttpd-fastcgi i686 1.4.35-1.el6 epel 45 k Installing for dependencies: spawn-fcgi i686 1.6.3-1.el6 epel 16 k Transaction...

赞(0)adminadminunix 阅读(2836)去评论

如何在Apache中创建和安装自签名证书教程-学派吧

SSL对于用户和Web服务器之间的安全通信很有用。证书在公共线路上传输时对数据进行加密,这样它就不会受到黑客的攻击。自签名证书是免费使用的,但不在生产环境中使用,例如使用信用卡、Paypal信息的机密数据。本篇文章将介绍关于在Linux系统上的Apache服务器中创建和安装自签名证书。 步骤1:安装mod_ssl包 要设置SSL证书,请确保在系统上安装了mod_ssl。如果尚未安装,需要使用以下命令进行安装。另外,安装openssl包来创建证书。 $ sudo apt-get install openssl # Debian based systems $ sudo yum install mod_ssl openssl # Redhat / CentOS systems $ sudo dnf install mod_ssl openssl # Fedora 22+ systems 步骤2:创建自签名证书 安装mod_ssl和openssl后,使用以下命令为你的域创建一个自签名证书。 $ sudo mkdir -p /etc/pki/tls/certs $ sudo cd /etc/pki/tls/certs 现在创建SSL证书 $ sudo openssl req -x509 -nodes -newkey rsa:2048 -keyout example.com.key -out example.com.crt 输出 Generating a 2048 bit RSA private key ....................................+++ ...................................+++ writing new private key to 'example.com.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For...

赞(0)adminadminunix 阅读(2360)去评论

MySQL性能优化的一些经验-mysql教程-

为查询优化你的查询 大多数的MySQL服务器都开启了查询缓存。这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的。当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存中,这样,后续的相同的查询就不用操作表而直接访问缓存结果了。 这里最主要的问题是,对于程序员来说,这个事情是很容易被忽略的。因为,我们某些查询语句会让MySQL不使用缓存。请看下面的示例: // 查询缓存不开启 $r = mysql_query("SELECT username FROM user WHERE signup_date >= CURDATE()"); // 开启查询缓存 $today = date("Y-m-d"); $r = mysql_query("SELECT username FROM user WHERE signup_date >= '$today'"); 上面两条SQL语句的差别就是 CURDATE() ,MySQL的查询缓存对这个函数不起作用。所以,像 NOW() 和 RAND() 或是其它的诸如此类的SQL函数都不会开启查询缓存,因为这些函数的返回是会不定的易变的。所以,你所需要的就是用一个变量来代替MySQL的函数,从而开启缓存。 学会使用EXPLAIN 使用EXPLAIN关键字可以让你知道MySQL是如何处理你的SQL语句的。 select id, title, cate from news where cate = 1 发现查询缓慢,然后在cate字段上增加索引,则会加快查询 当只要一行数据时使用LIMIT 1 当你查询表的有些时候只需要一条数据,请使用 limit 1。 正确的使用索引 索引并不一定就是给主键或是唯一的字段。如果在你的表中,有某个字段你总要会经常用来做搜索、拍下、条件,那么,请为其建立索引吧。 不要ORDER BY RAND() 效率很低的一种随机查询。 避免SELECT * 从数据库里读出越多的数据,那么查询就会变得越慢。并且,如果你的数据库服务器和WEB服务器是两台独立的服务器的话,这还会增加网络传输的负载。必须应该养成一个需要什么就取什么的好的习惯。 使用 ENUM 而不是 VARCHAR ENUM 类型是非常快和紧凑的。在实际上,其保存的是 TINYINT,但其外表上显示为字符串。这样一来,用这个字段来做一些选项列表变得相当的完美。 如果你有一个字段,比如“性别”,“国家”,“民族”,“状态”或“部门”,你知道这些字段的取值是有限而且固定的,那么,你应该使用 ENUM 而不是 VARCHAR。 使用 NOT NULL 除非你有一个很特别的原因去使用 NULL 值,你应该总是让你的字段保持 NOT NULL。这看起来好像有点争议,请往下看。 首先,问问你自己“Empty”和“NULL”有多大的区别(如果是INT,那就是0和NULL)?如果你觉得它们之间没有什么区别,那么你就不要使用NULL。(你知道吗?在 Oracle 里,NULL 和 Empty 的字符串是一样的!) 不要以为 NULL 不需要空间,其需要额外的空间,并且,在你进行比较的时候,你的程序会更复杂。 当然,这里并不是说你就不能使用NULL了,现实情况是很复杂的,依然会有些情况下,你需要使用NULL值。 下面摘自MySQL自己的文档 “NULL columns require additional space in the row to record whether their values are NULL. For MyISAM tables, each NULL column takes one bit extra, rounded...

赞(0)adminadminMySQL 阅读(2533)去评论

百万数据下mysql条件查询及分页查询的注意事项-mysql教程-

接上一节《百万数据mysql分页问题》,我们加上查询条件: select id from news where cate = 1 order by id desc limit 500000 ,10 查询时间 20 秒 好恐怖的速度!!利用第一节《百万数据mysql数据测试环境介绍》知识进行优化: select * from news where cate = 1 and id > (select id from news where cate = 1 order by id desc limit 500000,1 ) order by id desc limit 0,10 查询时间 15 秒 优化效果不明显,条件带来的影响还是很大!在这样的情况下无论我们怎么去优化sql语句就无法解决运行效率问题。那么换个思路:建立一个索引表,只记录文章的id、分类信息,我们将文章内容这个大字段分割出去。 表 news2 [ 文章表 引擎 myisam 字符集 utf-8 ] ------------------------------------------------- idint11主键自动增加 cateint11索引 在写入数据时将2张表同步,查询是则可以使用news2 来进行条件查询: select * from news where cate = 1 and id > (select id from news2 where cate = 1 order by id desc limit 500000,1 ) order by id desc limit 0,10 注意条件 id > 后面使用了news2 这张表! 运行时间 1.23秒,我们可以看到运行时间缩减了近20倍!!数据在10万左右是查询时间可以保持在0.5秒左右,是一个逐步接近我们能够容忍的值! 但是1秒对于服务器来说依然是一个不能接受的值!!还有什么可以优化的办法吗??我们尝试了一个伟大的变化: 将 news2 的存储引擎改变为innodb,执行结果是惊人的! select * from news where cate =...

赞(0)adminadminMySQL 阅读(2631)去评论

Apache服务器是什么-mysql教程-

Apache服务器是一个开源跨平台的web服务器。它具有多种免费且开源的web技术,适应多种操作系统。另外它还具有为软件添加更多功能的模块,使得它成为功能最丰富的HTTP网络服务器 Apache是一种流行的开源,跨平台的Web服务器,同时它也是现有最流行的web服务器,接下来将在文章中为大家详细介绍这一服务器,希望对大家有所帮助。 【推荐课程:数据库教程】 Apache服务器 Apache服务器除了受欢迎程度之外,它还是最古老的web服务器之一,它的第一个版本在1995年发布,与其他web服务器一样,Apache为访问者提供服务网站文件的后台方面。它推广各种免费和开源的高级Web技术。Apache Web服务器提供了全方位的功能,包括CGI,SSL和虚拟域; 它还支持用于扩展的插件模块。尽管Apache最初是为Unix环境设计的,但超过90%的安装都是在Linux上运行的。但是,它也适用于Windows 等其他操作系统。 Apache服务器如何工作 所有的Web服务器的基本任务都是接受来自客户端的请求(例如一个访问者的网络浏览器),然后将请求发送到响应页面(如页面组件,一个访客想看)。 Apache Web服务器具有为其软件添加更多功能的模块,例如MPM(用于处理多处理模式)或 mod_ssl启用SSL v3和TLS支持。以下是Apache中的一些常见功能: IPv6 FTP 带宽限制 WebDAV 负载均衡 URL重写 会话跟踪 基于IP地址的地理位置 为什么使用Apache服务器 Apache最重要的好处是它可以免费用于个人和商业用途,另外它也是一个可靠的软件框架,并且仍然得到积极维护,因此它可以获得频繁的功能升级以及安全补丁和漏洞改进。 虽然Apache是一款免费且更新的产品,但它并不吝啬功能。事实上,它是功能最丰富的HTTP网络服务器之一,这是它如此受欢迎的另一个原因。Apache通过使用模块为软件添加更多的功能,Apache支持: 密码验证和数字证书 可自定义的错误消息 通过虚拟主机功能支持多个网站 代理服务 SSL和TLS GZIP压缩可加快网页速度 总结:以上就是本篇文章的全部内容了,希望对大家有所帮助。 以上就是Apache服务器是什么的详细内容,更多请关注php中文网其它相关文章!

赞(0)adminadminMySQL 阅读(2331)去评论

【MySQL】information_schema库中包含所有表的字段信息-mysql教程-

information_schema提供了对数据库元数据、统计信息、以及有关MySQL Server的信息访问(例如:数据库名或表名,字段的数据类型和访问权限等)。information_schema库中保存的信息也可以称为MySQL的数据字典或系统目录。本文主要讲述了information_schema库中包含所有表的字段信息,感兴趣的朋友可以了解一下。 sql注入后可以通过该数据库获取所有表的字段信息 1.COLLATIONS表提供有关每个字符集的排序规则的信息。 COLLATIONS表包含以下列: COLLATION_NAME 排序规则名称。 CHARACTER_SET_NAME 与排序规则关联的字符集的名称。 ID 排序规则ID。 IS_DEFAULT 排序规则是否为其字符集的默认值。 IS_COMPILED 字符集是否已编译到服务器中。 SORTLEN 这与对字符集中表示的字符串进行排序所需的内存量有关。 2.SHOW COLLATION;//也可以查询到排序规则信息 3.COLLATION_CHARACTER_SET_APPLICABILITY 表 COLLATION_NAME 排序规则名称。 CHARACTER_SET_NAME 与排序规则关联的字符集的名称 4.COLUMNS 提供表中字段的信息 TABLE_CATALOG 包含该列的表所属的目录的名称。该值始终为def。 TABLE_SCHEMA 包含字段所在数据库的名称。 TABLE_NAME 包含字段所在表的名称。 COLUMN_NAME 字段的名称。 ORDINAL_POSITION 表中字段的位置。 ORDINAL_POSITION是必要的,因为你可能想说 ORDER BY ORDINAL_POSITION。与SHOW COLUMNS不同,COLUMNS表中的SELECT没有自动排序。show columns的语法是例如:show columns from my_test.user; COLUMN_DEFAULT 字段的默认值。如果字段具有显式缺省值NULL,或者字段定义不包含DEFAULT子句,则此值为NULL。 IS_NULLABLE 字段可为空性。如果NULL值可以存储在列中,则值为YES,否则为NO。 DATA_TYPE 字段数据类型。 DATA_TYPE值只是类型名称,没有其他信息。 COLUMN_TYPE 值包含类型名称以及可能的其他信息,例如精度或长度。 CHARACTER_MAXIMUM_LENGTH 对于字符串列,最大长度(以字符为单位)。 CHARACTER_OCTET_LENGTH 对于字符串列,最大长度(以字节为单位)。 NUMERIC_PRECISION 对于数字字段,数字精度。 NUMERIC_SCALE 对于数字字段,数字刻度。 DATETIME_PRECISION 对于时间字段,小数秒精度。 CHARACTER_SET_NAME 对于字符串字段,字符集名称。 COLLATION_NAME 对于字符串字段,排序规则名称。 COLUMN_TYPE 字段数据类型。 DATA_TYPE 值只是类型名称,没有其他信息。 COLUMN_TYPE 值包含类型名称以及可能的其他信息,例如精度或长度。 COLUMN_KEY 名称是否已建立索引 EXTRA 有关给定字段的任何其他可用信息。 PRIVILEGES 您对该字段的权限。 COLUMN_COMMENT 字段定义中包含的任何注释。 GENERATION_EXPRESSION 对于生成的字段,显示用于计算列值的表达式. 相关教程:mysql视频教程 以上就是【MySQL】information_schema库中包含所有表的字段信息的详细内容,更多请关注php中文网其它相关文章!

赞(0)adminadminMySQL 阅读(2347)去评论
MySQL乱码的原因和设置UTF8数据格式的方法介绍-mysql教程-学派吧-

MySQL乱码的原因和设置UTF8数据格式的方法介绍-mysql教程-学派吧

本篇文章给大家带来的内容是关于MySQL乱码的原因和设置UTF8数据格式的方法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 MySQL使用时,有一件很痛苦的事情肯定是结果乱码。将编码格式都设置为UTF8可以解决这个问题,我们今天来说下为什么要这么设置,以及怎么设置。 MySQL字符格式 字符集 在编程语言中,我们为了防止中文乱码,会使用unicode对中文字符做处理,而为了降低网络带宽和节省存储空间,我们使用UTF8进行编码。对这两者有什么不同不够了解的同学,可以参考Unicode字符集和UTF8编码编码的前世今生这篇文章。 同样在MySQL中,我们也会有这样的处理,我们可以查看当前数据库设置的编码方式(字符集): mysql> show variables like '%char%'; +--------------------------+----------------------------------+ | Variable_name | Value | +--------------------------+----------------------------------+ | character_set_client | latin1 | | character_set_connection | latin1 | | character_set_database | latin1 | | character_set_filesystem | binary | | character_set_results | latin1 | | character_set_server | latin1 | | character_set_system | utf8 | | character_sets_dir | /usr/local/mysql/share/charsets/ | +--------------------------+----------------------------------+ 8 rows in set (0.00 sec) 表中就是当前设置的字符集,先看不用关注的几个值: character_set_filesystem | binary:文件系统上的存储格式,默认为binary(二进制) character_set_system | utf8:系统的存储格式,默认为utf8 character_sets_dir | /usr/local/mysql/share/charsets/:可以使用的字符集的文件路径 剩下的几个就是日常影响读写乱码的参数了:– character_set_client:客户端请求数据的字符集– character_set_connection:从客户端接收到数据,然后传输的字符集– character_set_database:默认数据库的字符集;如果没有默认数据库,使用character_set_server字段– character_set_results:结果集的字符集– character_set_server:数据库服务器的默认字符集 字符集的转换流程分为3步: 1、客户端请求数据库数据,发送的数据使用character_set_client字符集 2、MySQL实例收到客户端发送的数据后,将其转换为character_set_connection字符集 3、进行内部操作时,将数据字符集转换为内部操作字符集: (1)使用每个数据字段的character set设定值 (2)若不存在,使用对应数据表的default character set设定值 (3)若不存在,使用对应数据库的default character set设定值 (4)若不存在,使用character_set_server设定值 4、将操作结果值从内部操作字符集转换为character_set_results 字符序 说字符序之前,我们需要了解一点基础知识: 字符(Character)是指人类语言中最小的表义符号。例如’A’、’B’等; 给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,这一数值就是字符的编码(Encoding)。例如,我们给字符’A’赋予数值0,给字符’B’赋予数值1,则0就是字符’A’的编码; 给定一系列字符并赋予对应的编码后,所有这些字符和编码对组成的集合就是字符集(Character Set)。例如,给定字符列表为{‘A’,’B’}时,{‘A’=>0, ‘B’=>1}就是一个字符集; 字符序(Collation)是指在同一字符集内字符之间的比较规则; 确定字符序后,才能在一个字符集上定义什么是等价的字符,以及字符之间的大小关系; 每个字符序唯一对应一种字符集,但一个字符集可以对应多种字符序,其中有一个是默认字符序(Default Collation); MySQL中的字符序名称遵从命名惯例:以字符序对应的字符集名称开头;以_ci(表示大小写不敏感,case insensitive)、_cs(表示大小写敏感,case sensitive)或_bin(表示按编码值比较,binary)结尾。例如:在字符序“utf8_general_ci”下,字符“a”和“A”是等价的; 因此字符序不同于字符集,用于数据库字段的相等或大小比较。我们查看MySQL实例设置的字符序: mysql> show variables like 'collation%'; +----------------------+-------------------+ | Variable_name | Value...

赞(0)adminadminMySQL 阅读(2051)去评论

MySQL如何导入格式化数据-mysql教程-学派吧

在MySQL中如何导入格式化数据?本篇文章就来给大家介绍MySQL导入格式化数据的方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 在有些场景下,我们需要把一批特定格式的数据导入到mysql数据库中,做法有很多,使用shell脚本、python都可以,今天来介绍两个更便捷的命令,mysqlimport 和 load data mysqlimport 使用方法 mysqlimport [options] db_name textfile1 [textfile2 ...] # db_name 对应数据库名称 # textfile 文件名,对应要插入的数据库表名 # 比如:mysqlimport a8 campaign.txt 会把campaign.txt中的数据插入到a8数据库中的campaign表 注意:campaign.txt文件必须在/usr/local/mysql/var/a8/目录下,即数据库所在目录 如果不在对应的目录下,会返回以下错误: mysqlimport -uroot -p123456 -hlocalhost -P3306 a8 campaign.txt /usr/local/mysql/bin/mysqlimport: Error: File '/usr/local/mysql/var/a8/campaign.txt' not found (Errcode: 2), when using table: campaign 常用选项 --columns=id,name,creator... # 对应的数据表列名,定义被导入文件中的每一列对应的数据库表列名 --fields-terminated-by= # 文件字段以什么分隔,参数为字符串,默认为\t --fields-enclosed-by= # 数据域用什么符号扩起来,默认为空,一般可以是双引号、括号等 --fields-optionally-enclosed-by= # 数据域可以用什么符号括起来,因为为只有部分数据用这些符号括起来 --fields-escaped-by= # 转义字符,参数为字符,默认为\ --lines-terminated-by= # 数据行以什么结束,参数为字符串,windows默认为\r\n --user=user_name 或 -u user_name --password=[password] 或 -p[password] --host=host_name 或 -h hostname --port=port_num,或 -P port_num # 定义用户名、密码、mysql服务器地址和用于连接的TCP/IP端口号,默认为mysql默认端口3306 --ignore-lines=n # 忽视数据文件的前n行,因为很多数据文件前面有表头 --delete -D # 在把文件中的数据插入前删除表中原先的数据 --local -L # 指定从客户端电脑读入数据文件,否则从服务器电脑读取 --lock-tables -l # 处理文本文件前锁定所有表以便写入,确保所有表在服务器上保持同步 --protocol={TCP | SOCKET | PIPE | MEMORY} 使用的连接协议 --force -f #忽视错误。例如,如果某个文本文件的表不存在,继续处理其它文件,不使用--force,如果表不存在则mysqlimport退出 --compress -C # 压缩在客户端和服务器之间发送的所有信息(如果二者均支持压缩) --silent,-s # 沉默模式,只有出现错误时才输出 --socket=path,-S path # 当连接localhost时使用的套接字文件(为默认主机) --verbose,-v # 冗长模式。打印出程序操作的详细信息。...

赞(0)adminadminMySQL 阅读(1820)去评论

更好的服务器推荐选择

本站主要用于阿里云、腾讯云、华为云服务器活动的推荐及优惠购买方式、并搜集服务器运维的日常解决方案!

联系我们联系我们

登录

找回密码

注册