博客

  • php常用函数

    一、PHP系统函数

    函数

    功能 用法
    var_dump() 打印变量结构信息,包括类型和值。数组将递归展开值

    var_dump ( $arg1...);

    echo():是语法结构 输出一个或者多个字符串,可不用(),用单引号或者双引号括起来。变量直接输出,

    echo $arg1,$arg2…;

    isset() 检测变量是否设置并且值不为null时返回ture,反之false isset($args)
    empty() 检测变量是否为空 empty($args)
    exit() 输出一条信息同时退出当前版本 exit('退出成功')
    die() 输出一条信息同时停止代码向下执行 die(‘代码已停止’)
    iconv() 字符集按照指定编码转换 iconv(incharset,outcharset,$str)
    uniqid() 获取一个唯一id(无参数)或者获取一个带前缀、基于当前时间微秒数的唯一ID(看参数)。 uniqid([前缀名],[true])
    gettype() 获取数据类型 gettype($args)
    settype() 把变量$arg设置为某数据类型 settype($args,"[int][string]…")
    serialize() 把$arg序列化,即转换成文本保存或者传输,且不丢失其类型和结构 serialize(mixed $arg)
    unserialize() 把$str反序列化,返回序列化之前的类型和格式信息 unserialize($str)
    getcwd() 获取当前运行脚本的目录 getcwd()
    basename() 返回路径的中文部分 basename($url)
    preg_match() 用$string去匹配正则表达式,把匹配的结果用$res返回匹配1或者不匹配0 preg_match($string,正则表达式,$res)

    二、进制转换函数

     

    函数 功能 用法
    decbin() 十进制 ——> 二进制 decbin($num)
    decoct() 十进制 ——> 八进制 decoct($num)
    dechex() 十进制 ——> 十六进制 dechex($num)
    bindec() 二进制 ——> 十进制 bindec($num)
    octdec() 八进制 ——> 十进制 octdec($num)
    hexdec() 十六进制 ——> 十进制 hexdec($num)
    base_convert() 任意进制转换

    base_convert(转换的数值,

    该数值的进制,要转换成的进制)

     

    各进制的英文:

    二进制:binary 十进制:decimal

    八进制:octect 十六进制:hexadecimal

    三、常量函数

     

    函数 功能 用法
    define() 定义常量,第三个参数选择是否对大小写敏感。 define(常量名,常量值,【true】)
    defined() 判断某常量是否存在 define(常量名)
    get_defined_constants() 获取预定义常量 get_defined_constant()

    四、判断函数

     

     

    函数 功能 用法
    is_bool() 判断是否为布尔类型 is_bool()
    is_int() 判断是否为整形 is_int()
    is_string() 判断是否为字符串 is_string()
    is_float() 判断是否为浮点型 is_float()
    is_numeric() 判断是否为数字或者数字字符串 is_numeric()
    is_null() 判断是否为空 is_null()
    is_array() 判断是否为数组 is_array()
    is_dir() 判断是否为路径 id_dir()

    五、字符串函数

     

     

    函数 功能 用法
    strstr()为strchr()的别名

    返回 $str 字符串从 $needle 第一次出现的位置开始到结尾的字符串。

    且区分大小写,不想区分大小写请用:stristr()

    strstr ( $str , $needle )

    strpos() 获取$str中$needle第一次出现的位置(下标),没有返回false strpos($str,$needle)
    strrpos() 获取$str中$needle最后一次出现的位置(下标),没有返回false strrpos($str,$needle)
    substr() 截取字符串$str从$start位置到$length个的字符串 substr($str,$start,$length)
    implode() 用,把数组连接成字符串 implode(',',$arr)
    explode() 用,把字符串分割成数组 explode(',',$str)
    str_split() 把字符串$str分割成数组,每单位长度为5 str_split($str,5)
    str_replace() 把字符串$str中的a用b替换 str_replace(a,b,$str)
    strtolower() 字符串转换成小写的 strtolower($str)
    strtoupper() 字符串转换为大写 strtoupper($str)
    ucfirst() 把字符串$str第一个字符转换成大写 ucfirst($str)
    unwords() 把字符串中$str每个单词转换成首字母大写 unwords($str)
    trim() 去除字符串两端的空白字符和其他字符 trim($str)
    rtrim() 去除字符串右侧的空白字符和其他字符 rtrim($str)
    strlen() 获取字符串长度 strlen($str)
    substr_count() 统计字符串$str中一个字符串$a出现的次数 substr_count($str,"$a")
    str_repeat() 重复输出$str,次数为$num str_repeat($str,$num)
    strpad() 在$str的左侧用0填充使其长度为$length strpad($str,$length,"0",STR_PAD_LEFT)
    strrev() 翻转字符串顺序 strrev($str)
    rand() 取m-n之间的随机整数 rand(m,n)
    mt_rand() 取m-n之间的随机整数,获取速度比mt_rand()快 mt_rand(m,n)
    pow() 取m的n次方 pow(m,n)
    number_format() 以千位分隔符方式格式化一个数字 number_format($n)

    六、数组函数

     

     

    函数 作用 用法
    unset() 销毁指定的变量 unset($arr)/unset($arr[n])
    array_values() 获取数组中所有的值且重新建立数字下标 array_values($arr)
    array_keys() 获取数组中所有键值 array_keys($arr)
    is_array() 判断是否为数组 is_array($arr)
    in_array() 判断数组$arr是否包含某个元素$str in_array($str,$arr)
    count() 统计数组长度/统计多维数组长度 count($arr)/count($arr,1)
    range() 建立一个1-9的数组 rang(1,9)、range(a-z)
    array_merge() 连接多个数组为一个数组 array_merge($arr,$brr…)
    array_rand() 在数组中随机抽取n个单元,返回键值,成为新的数组 array_rand($arr,n)
    shuffle() 打乱数组顺序 shuffle($arr)
    each() 返回数组中当前元素的 键/值对 并将数组指针自动向前移动一步 each($arr)
    list():语言结构 把数组中的值赋给一些变量 list($a,$b,$c)=$arr
    array_unshift() 在数组开头插入一个或多个单元 array_unshift($arr,$v1,$v2…)
    array_push() 在数组最后插入一个或多个单元 array_push($arr,$v1,$v2…)
    array_pop() 将数组的最后一个元素移除并返回 array_pop($arr)
    array_key_exist() 判断数组中是否存在键$k array_key_exist($k,$arr)
    array_search() 在数组中搜索给定的值$v,如果成功则返回相应的键名 array_search($v,$arr)
    array_flip() 交换数组的键和值 array_flip($arr)
    array_count_values() 统计数组中所有值出现的次数 array_count_values($arr)
    array_unique() 移除数组中重复的值 array_unique($arr)
    sort() 将数组按照值的大小升序排列 sort($arr)
    asort() 将数组按照值的大小升序排列且保持索引关系 asort($arr)
    rsort() 将数组按照值的大小降序排列,重排索引 rsort($arr)
    arsort 将数组按照值的大小降序排列,保持索引 arsort($arr)
    natsort() 自然排序(符合人们日常使用的习惯) natsort($arr)
    ksort() 将数组按照键的大小降序排列,保留键名到数据的关联 ksort($arr)
    krsort() 将数组按照键的大小降序排列,保留键名到数据的关联 krsort($arr)
    array_sum() 对数组中所有的值求和 array_sum($arr)
    key() 获取数组中遍历指针的位置(键) key($arr)
    current() 获取指针所在位置的值 current($arr)
    next() 将数组中指针后移一个位置 next($arr)
    prev() 将数组中指针前移一个位置 prev($arr)
    reset() 重置数组中指针位置(指向第一个位置) reset($arr)
    end() 将数组中指针移到最后一个位置 end($arr)

    七、时间函数

     

     

    函数 作用 用法
    time() 获取当前时间戳 time()
    mktime() 获取指定时间的时间戳 mktime (小时, 分钟, 秒 ,月 ,日, 年 )
    date() 将时间$tmp指定格式输出 date('Y-m-d H:i:s',$tmp)
    strtotime() 将任何英文文本的日期时间描述解析为 Unix 时间戳 strtotime("now")

    八、数据库函数

     

     

    函数 功能 作用
    mysql_connect() 链接mysql数据库 mysql_connect($host,$user,$pwd)
    mysql_query() 发送一条 MySQL 语句 mysql_query(sql语句)
    mysql_fetch_assoc() 在结果集中取出一行数据组成关联数组并返回,并且继续移动内部数据指针 mysql_fetch_assoc($result)
    mysql_fetch_array() 在结果集中取出一行数据组成数组并返回,并且继续移动内部数据指针 mysql_fetch_array($result,参数)
    mysql_fetch_row() 在结果集中取出一行数据组成索引数组并返回,并且继续移动内部数据指针 mysql_fetch_row($result)
    mysql_select_db() 选择数据库 mysql_select_db(数据库名)
    mysql_num_rows() 获取查询结果记录数 mysql_num_rows(查询结果)

    九、文件操作函数

     

     

    fopen() 打开文件或者URL fopen(“filename”,“mode”)
    fwrite() 在文件中写入内容 fwrite("filename","内容")
    fclose() 关闭文件或URL fclose("filename")
    file_put_contents() 一步写入内容 file_put_contents("filename","内容")
    file_get_contents() 一步读取内容 file_get_contents("filename","内容")
    fread() 读取指定长度文件内容 fread("filename",字节数)
    filesize() 获取文件内容长度(字节数) filesize("filename")
    fgets() 读取一行 fgets($handle,length)
    file() 把整个文件读入一个数组中 file("filename")
    copy() 拷贝文件,新文件名为"newfile" copy("filename","newfile")
    unlink() 删除文件 unlink($filename)
    filectime() 获取文件创建时间 filectime($filename)
    fileatime() 获取文件上次访问时间 fileatime($filename)
    filemtime() 获取文件修改时间 filemtime($filename)
    feof() 判断指针是否到达文件末尾 feof($filename)
    json_encode() 把数据编译成JSON数据 json_encode($a)
    json_decode()

    把JSON数据反编码为PHP数据变量

    参数为true时,返回array

    json_decode($j,[false]/true)

    十、目录操作函数

     

    函数 功能 用法
    mkdir() 创建目录,有0777是否递归创建 mkdir("/path/to/my/dir", 0777);
    rmdir() 删除目录 rmdir($DIR)
    opendir() 打开目录句柄 opendir($dir)
    readdir() 读取目录 readdir($dir)
    closedir() 关闭目录 closedir($dir)
    rewinddir() 重置目录资源 rewinddir($dir)
    file_exists() 判断文件/目录是否存在 file_exists($filename/$dir)
    rename() 对文件/目录重命名 rename($filename/$dir,$newname)
    dirname() dirname($path) 返回路径中的目录部分
    basename() 返回路径中的文件名部分 basename($path)
    pathinfo() 获取路径信息 pathinfo($path,[options])

    十一、类函数

     

    函数 功能 作用
    class_exists() 判断类是否存在 class_exists($classname)
    interface_exists() 判断接口是否存在 interface_exists($name)
    method_exists() 判断方法是否存在 method_exists($name)
    property_exists() 判断属性是否存在 property($name)
    get_class() 获取类名称 get_class()
    get_parent_class() 获取父类名称 get_parent_class()
    get_class_methods() 获取类中的方法 get_class_methods()
    get_class_vars() 返回由类的默认属性组成的数组 get_class_vars()
    get_declared_class() 获取已定义的类的名称 get_declared_class()
    __toString() 将对象当字符串对待时调用 __toString()
    __construct() New对象时自动调用 __construct()
    __destruct() 销毁对象时自动调用 __destruct()
    __clone() 克隆对象时自动调用 __clone()
    __invoke() 把对象当做函数调用时自动调用 __invoke()
    __set() 给不可访问的成员属性赋值时自动调用 __set()
    __get() 读取不可读取的成员属性的值时自动调用 __get()
    __isset() 对不可访问的成员属性使用isset()或者empty()时自动调用 __isset()
    __unset() 对不可访问的成员属性使用unset()时自动调 __unset()
    class_alias() 为类创建一个别名 class_alias(原类,类别名)
    get_object_vars() 返回一个包含object可用的已定义属性和值的关联数组 get_object_vars()
    is_a() 如果对象属于该类或该类是此对象的父类则返回 TRUE is_a($obj,$classname)
    is_subclass_of() 如果对象 object 所属类是类 class_name 的子类,则返回 TRUE,否则返回 FALSE。 is_subclass_of($obj,$classname)
     

     

  • 修改已创建的docker容器的–restart=always参数

    创建容器时没有添加参数 –restart=always ,导致的后果是:当 Docker 重启时,容器未能自动启动。

    现在要添加该参数怎么办呢,方法有二:

    1、Docker 命令修改
    docker container update –restart=always 容器名字
    1
    实例操作如下:

    [root@rabbitmq ~]# docker container update –restart=always rabbitmq 
    rabbitmq
    [root@rabbitmq ~]# systemctl restart docker
    [root@rabbitmq ~]# docker ps 
    CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                                                                                        NAMES
    043b63bbda84        redis:5.0.5           "docker-entrypoint.s…"   46 hours ago        Up 7 seconds        0.0.0.0:7005->7005/tcp, 6379/tcp, 0.0.0.0:17005->17005/tcp                                   redis-7005
    670ddcd33d91        redis:5.0.5           "docker-entrypoint.s…"   46 hours ago        Up 7 seconds        0.0.0.0:7004->7004/tcp, 6379/tcp, 0.0.0.0:17004->17004/tcp                                   redis-7004
    b3785e9796c6        redis:5.0.5           "docker-entrypoint.s…"   46 hours ago        Up 7 seconds        0.0.0.0:7003->7003/tcp, 6379/tcp, 0.0.0.0:17003->17003/tcp                                   redis-7003
    42f19c26df01        redis:5.0.5           "docker-entrypoint.s…"   46 hours ago        Up 8 seconds        0.0.0.0:7002->7002/tcp, 6379/tcp, 0.0.0.0:17002->17002/tcp                                   redis-7002
    d7f31eec4052        redis:5.0.5           "docker-entrypoint.s…"   46 hours ago        Up 8 seconds        0.0.0.0:7001->7001/tcp, 6379/tcp, 0.0.0.0:17001->17001/tcp                                   redis-7001
    874b9667b48c        redis:5.0.5           "docker-entrypoint.s…"   46 hours ago        Up 8 seconds        0.0.0.0:7000->7000/tcp, 6379/tcp, 0.0.0.0:17000->17000/tcp                                   redis-7000
    b045b37d244d        rabbitmq:management   "docker-entrypoint.s…"   2 days ago          Up 8 seconds        4369/tcp, 5671/tcp, 0.0.0.0:5672->5672/tcp, 15671/tcp, 25672/tcp, 0.0.0.0:15672->15672/tcp   rabbitmq
    [root@rabbitmq ~]# 


    ————————————————
    版权声明:本文为CSDN博主「carcoon」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/carcoon/article/details/105253898

  • 修改docker的port端口映射

    1. 查看需要修改的容器,记住container id
    docker ps -a
    2. 停止容器
    docker stop xxx
    3. 修改容器的端口映射配置文件

    cd /var/lib/docker/containers

    根据容器id查看对应目录,进去该目录(注:此文件夹内的id为很长的字符,只需要看前面docker ps -a显示出来的container_id前面的值对应即可)

    编辑json文件:此文件可以不用改
    vi config.v2.json

    vi config.v2.json
     
    "Config": {
    ….
    "ExposedPorts": {
    "80/tcp": {},
    "8888/tcp": {}
    },
    ….
    },
    "NetworkSettings": {
    ….
    "Ports": {
     "80/tcp": [
     {
     "HostIp": "",
     "HostPort": "80"
     }
     ],
     vi hostconfig.json

    vi hostconfig.json
     
    "PortBindings": {
     "80/tcp": [
     {
     "HostIp": "",
     "HostPort": "80"
     }
     ],
     "8888/tcp": [
     {
     "HostIp": "",
     "HostPort": "8888" # 这是要修改的
     }
     ]
     }
    4.重启docker服务
    service docker restart
    5.启动容器
    docker start xxx
    ————————————————
    版权声明:本文为CSDN博主「ijijni」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/ijijni/article/details/81939523

  • 反向代理脚本

    反向代理脚本

     location / {
      proxy_pass http://127.0.0.1:8090/;
      rewrite ^/(.*)$ /$1 break;
      proxy_redirect off;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Upgrade-Insecure-Requests 1;
      proxy_set_header X-Forwarded-Proto https;
    }
    
  • linux怎么查询端口

    linux查询端口的方法:1、使用netstat命令,语法“netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][–ip]”;2、使用ss命令,可显示详细的TCP和连接状态的信息;3、使用lsof命令。

    本教程操作环境:linux5.9.8系统、Dell G3电脑。

    linux查询端口

    一、使用 netstat 检查端口

    netstat 是一个命令行工具,可以提供有关网络连接的信息。

    显示所有已开放端口,请使用以下命令:netstat -anp

    要列出正在侦听的所有 TCP 或 UDP 端口,包括使用端口和套接字状态的服务,请使用以下命令:netstat -tunlp

    此命令中使用的选项具有以下含义:

    -t – 显示 TCP 端口。-u – 显示 UDP 端口。-n – 显示数字地址而不是主机名。-l – 仅显示侦听端口。-p – 显示进程的 PID 和名称。仅当您以 root 或 sudo 用户身份运行命令时,才会显示此信息。

    查询指定端口通过grep过滤:netstat -tnlp | grep :80

    显示示例:

    1.png

    注:Proto – 套接字使用的协议。Local Address – 进程侦听的 IP 地址和端口号。PID/Program name – PID 和进程名称。

    二、使用 ss 检查端口

    ss 是新的 netstat,命令选项大致相同。它缺少一些 netstat 功能,但暴露了更多的 TCP 状态,而且速度稍快。

    使用示例:ss -tunlp

    2.png

    三、使用 lsof 检查端口

    lsof 是一个功能强大的命令行实用程序,它提供有关进程打开的文件的信息。

    在 Linux 中,一切都是文件,可以将套接字视为写入网络的文件。

    要使用 lsof 获取所有侦听 TCP 端口的列表:lsof -nP -iTCP -sTCP:LISTEN

    使用的选项如下:-n – 不要将端口号转换为端口名称。-p – 不要解析主机名,显示数字地址。-iTCP -sTCP:LISTEN – 仅显示 TCP 协议状态为 LISTEN 的网络文件。

    使用示例:

    3.png

    要查找正在侦听特定端口(例如 3306)的进程,请使用以下命令:sudo lsof -nP -iTCP:3306 -sTCP:LISTEN

     

     

  • ubuntu官方国内源

    背景描述:
    之前我一直在使用中科大的源,还是挺快的。一直也没有感觉有什么问题。直到最近在折腾vnc,发现中科大的源有一些包会404,安装不了。而我在vmware中的正好是默认的cn.archive.ubuntu.com国内的源,毕竟是官方国内镜像的嘛。对应的包不会出现404,我干脆就换官方的了。

    使用方法

    修改
    /etc/apt/sources.list
    清空原有内容,加入内容如下 :

    
    # See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
    # newer versions of the distribution.
    deb http://cn.archive.ubuntu.com/ubuntu focal main restricted
    # deb-src http://cn.archive.ubuntu.com/ubuntu focal main restricted
    
    ## Major bug fix updates produced after the final release of the
    ## distribution.
    deb http://cn.archive.ubuntu.com/ubuntu focal-updates main restricted
    # deb-src http://cn.archive.ubuntu.com/ubuntu focal-updates main restricted
    
    ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
    ## team. Also, please note that software in universe WILL NOT receive any
    ## review or updates from the Ubuntu security team.
    deb http://cn.archive.ubuntu.com/ubuntu focal universe
    # deb-src http://cn.archive.ubuntu.com/ubuntu focal universe
    deb http://cn.archive.ubuntu.com/ubuntu focal-updates universe
    # deb-src http://cn.archive.ubuntu.com/ubuntu focal-updates universe
    
    ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
    ## team, and may not be under a free licence. Please satisfy yourself as to
    ## your rights to use the software. Also, please note that software in
    ## multiverse WILL NOT receive any review or updates from the Ubuntu
    ## security team.
    deb http://cn.archive.ubuntu.com/ubuntu focal multiverse
    # deb-src http://cn.archive.ubuntu.com/ubuntu focal multiverse
    deb http://cn.archive.ubuntu.com/ubuntu focal-updates multiverse
    # deb-src http://cn.archive.ubuntu.com/ubuntu focal-updates multiverse
    
    ## N.B. software from this repository may not have been tested as
    ## extensively as that contained in the main release, although it includes
    ## newer versions of some applications which may provide useful features.
    ## Also, please note that software in backports WILL NOT receive any review
    ## or updates from the Ubuntu security team.
    deb http://cn.archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse
    # deb-src http://cn.archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse
    
    ## Uncomment the following two lines to add software from Canonical's
    ## 'partner' repository.
    ## This software is not part of Ubuntu, but is offered by Canonical and the
    ## respective vendors as a service to Ubuntu users.
    # deb http://archive.canonical.com/ubuntu focal partner
    # deb-src http://archive.canonical.com/ubuntu focal partner
    
    deb http://cn.archive.ubuntu.com/ubuntu focal-security main restricted
    # deb-src http://cn.archive.ubuntu.com/ubuntu focal-security main restricted
    deb http://cn.archive.ubuntu.com/ubuntu focal-security universe
    # deb-src http://cn.archive.ubuntu.com/ubuntu focal-security universe
    deb http://cn.archive.ubuntu.com/ubuntu focal-security multiverse
    # deb-src http://cn.archive.ubuntu.com/ubuntu focal-security multiverse
    
    

    然后在执行一下

    
    apt-get update
    
    


    ————————————————
    版权声明:本文为CSDN博主「ITKEY_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/lxyoucan/article/details/121691910

  • npm ERR! code ERESOLVE

    在运行npm install时报错

        
        npm ERR! code ERESOLVE
    	npm ERR! ERESOLVE unable to resolve dependency tree
    	npm ERR!
    	npm ERR! While resolving: operatingsystem@0.1.0
    	npm ERR! Found: vue@3.1.5
    	npm ERR! node_modules/vue
    	npm ERR!   vue@"^3.0.0" from the root project
    	npm ERR!
    
    

    控制台输入npm -V发现我的npm版本为7.x的,因为npm7.x版本对某些命令比npm6.x更严格,所以莫名报了这个错

    
    	解决办法有两种:
    	1.在命令后加上--legacy-peer-deps
    	2.使用npm6.x
    
    

    提示:使用npm@6不需要卸载npm@7。可以使用npx指定npm的版本。例如:npx -p npm@6 npm i –legacy-peer-deps

    如果这不能立即起作用,可以先删除node_modules和package-lock.json


    ————————————————
    版权声明:本文为CSDN博主「海底烧烤店ai」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/m0_51969330/article/details/119186416

  • 如何远程连接云服务器docker创建的mysql数据库

    前言:docker部署mysql的关键在于两点
    1.mysql在生产环境产生的数据放在容器里很不安全,我们需要把数据文件夹挂载到容器外,以防数据丢失。
    2.运行mysql镜像时需要设置初始密码,并且设置mysql可以远程连接。

    1.安装Docker

    yum -y install docker-io
    #当前启动
    systemctl start docker
    #自启动
    systemctl enable docker
    

    2.安装并启动MySQL:5.7

     # 1.找镜像
     docker search mysql
     
     # 2.拉镜像
    docker pull mysql:5.7
     
     # 3.建镜像
     # -p 端口映射 本机端口:容器端口
     # --name:给MySQL容器取的名字
     # -d:表示后台运行
     # -e MYSQL_ROOT_PASSWORD:设置root用户密码
     # -v:表示挂载路径,冒号左面的表示宿主机的挂载目录,冒号右边则表示容器内部的路径。
    docker run -p 3306:3306 --name mysql 
    -v /usr/local/docker/mysql/conf:/etc/mysql 
    -v /usr/local/docker/mysql/logs:/var/log/mysql 
    -v /usr/local/docker/mysql/data:/var/lib/mysql
     -e MYSQL_ROOT_PASSWORD=123456 
    -d mysql:5.7
    
    OTHER:
    
    docker run -itd --name=mysql -p 3306:3306 -v /www/docker/course/mysql/:/var/lib/mysql/ -e MYSQL_ROOT_PASSWORD=mmr702351mysql -d mysql
     
    -i 表示交互模式运行容器
    -t 为容器分配一个伪输入终端
    -d 表示后台运行容器 并返回容器Id
    ps:不指定版本号拉取最新
    
    

    3.配置网路访问权限

    1.root外网连接权限配置

    # 进入mysql容器
    docker exec -it mysql bash
    # -u后接账户 -p接密码
    mysql -uroot -p123456
    # 外网范围授权(不适用mysql8)
    grant all privileges on *.* to root@'%' identified by "password";
    # 刷新权限
    flush privileges;
    # 一定要更新密码,否则Navicat连接报1045错误 (mysql8 此句即可)
    alter user 'root'@'%' identified with mysql_native_password by '123456';
    # 刷新权限
    flush privileges;
    

    2.3306端口开发

    # 1.放行3306端口
    systemctl start firewalld
    firewall-cmd  --zone=public --add-port=3306/tcp --permanent  # 添加放行端口
    firewall-cmd  --reload # 成功后再重载防火墙
    systemctl restart firewalld.service # 再重启下防火墙服务
    # 2.直接关防火墙法(1或2选一种就行)
    systemctl stop firewalld
    

    4.云服务器配置安全组

     

    5.navivat连接成功

     

     

  • FastStone Capture 企业版序列号

    FastStone Capture 
      企业版序列号:
      name:bluman
      serial/序列号/注册码:VPISCJULXUFGDDXYAUYF

  • MongoDB 常用的几大GUI工具

    MongoDB 常用的几大GUI工具

    MongoDBCompass

    (官方的连接工具),免费的,界面简洁,不支持 sql 查询,支持性能监控。支持在三大平台 Windows 、Mac 、Linux 上运行。 下载链接:MongoDBCompass

    性能监控,需要对应的权限。

    Robo 3T

    免费的,支持 MongoDB 4.0,轻量级GUI,支持 sql 查询,支持语法填充。不支持导入导出。支持在三大平台 Windows 、Mac 、Linux 上运行。

    下载链接

    Robo 3T

    Studio 3T

    收费的,但是可以免费试用30天。支持导入导出,支持 sql 查询,支持语法填充,功能丰富。支持 MongoDB 4.0。支持在三大平台 Windows 、Mac 、Linux 上运行。 下载链接

    该工具只能试用30天,可通过购买进行使用,如果你需要长期保持试用的功能,跟我做就好了:

    新建一个文件,后缀为 .bat,并将以下内容写入。

    @echo off
    ECHO 重置Studio 3T的使用日期......
    FOR /f "tokens=1,2,* " %%i IN ('reg query "HKEY_CURRENT_USER\Software\JavaSoft\Prefs\3t\mongochef\enterprise" ^| find /V "installation" ^| find /V "HKEY"') DO ECHO yes | reg add "HKEY_CURRENT_USER\Software\JavaSoft\Prefs\3t\mongochef\enterprise" /v %%i /t REG_SZ /d ""
    ECHO 重置完成, 按任意键退出......
    pause>nul
    exit
    

    然后我们运行该文件,即可重新开启试用30天,30天后我们也可以再次运行该脚本。或者我们可以将该脚本放到开机启动中,或者放到定时任务中。

    上面脚本仅供学习使用,不能用于商业用途。

    NoSQLBooster

    有免费版本,也有付费版本,版本的功能差异见官网. 支持 sql,免费版 支持 CSV、JSON 导入,但不支持 CSV、JSON 导出。集成了 mongodump/mongorestore ,支持在三大平台 Windows 、Mac 、Linux 上运行。支持监控,和查询优化。 下载链接