分类: 菜鸟Linux笔记

菜鸟学习LINUX笔记

  • CentOS安装系统后的基本调优

    CentOS安装系统后的基本调优

     

    一.清理开机自动启动的服务

     

    显示出所有服务的所有运行级别的启动状态

    #chkconfig –list

     

    停止所有在运行级别3上开机启动的服务

    #for oldboy in `chkconfig –list|grep 3:on|awk ‘{print $1}’`;do chkconfig –level 3 $oldboy off;done

     

    在开启常用的服务,crond,network,syslog,sshd

    #for oldboy in crond network syslog sshd;do chkconfig –level 3 $oldboy on;done

     

    显示出所有3运行级别下的所有服务(根据需求决定哪个服务启动)

    #chkconfig –list |grep 3:on

     

    二.配置SSH安全

    备份配置文件(更改配置文件前需要进行备份)

    #cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

     

    修改sshd配置文件(提高系统安全性)

    #vi /etc/ssh/sshd_config

    Port 2022 #修改ssh的默认端口,默认为22端口

    PermitRootLogin no #不允许ROOT用户登录

    PermitEmptyPasswords no #不允许空密码登录

    UseDns no #不适用DNS

     

    三.修改LINUX字符集

    在使用英文安装操作系统后,如果系统中有中文,这时候会显示乱码,需要修改字符集

    英文字符集:en_US.UTF-8

    中文字符集:zh_CN.GB18030

     

    #vim /etc/sysconfig/i18n

    LANG=”en_US.UTF-8″

    SYSFONT=”latarcyrheb-sun16″

     

    让修改内容立刻有效

    #source /etc/sysconfig/i18n

     

    四.修改时区并使用ntp服务更新服务器时间

    安装ntp

    #yum install ntp

     

    更新时间

    #ntpdate time.windows.com

     

    每5分钟执行一次更新

    #echo ‘*/5 * * * * ntpdate time.windows.com > /dev/null 2>&1 >>/var/spool/cron/root’

     

    查看计划任务

    #crontab –l

     

    时区是以文件形式存在的,当前的时区文件是在/etc/localtime,我们用东八区,北京,上海的时区文件替换即可:

    #cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

     

    五.加大服务器文件描述符

    显示当前的文件描述符数

    #ulimit –n

    1024

     

    修改文件描述符数

    #vim /etc/security/limits.conf

    * – nofile 65536 #在文本的最后一行添加

    重新登录用户,在次查看文件描述符

    #ulimit –n

    65536

     

    六.调整内核参数

    增加以下项

    #vim /etc/sysctl.conf

    net.ipv4.tcp_fin_timeout = 2

    net.ipv4.tcp_tw_reuse = 1

    net.ipv4.tcp_tw_recycle = 1

    net.ipv4.tcp_syncookies = 1

    net.ipv4.tcp_keepalive_time = 600

    net.ipv4.ip_local_port_range = 4000 65000

    net.ipv4.tcp_max_syn_backlog = 16384

    net.ipv4.tcp_max_tw_buckets = 36000

    net.ipv4.route.gc_timeout = 100

    net.ipv4.tcp_syn_retries = 1

    net.ipv4.tcp_synack_retries = 1

    使修改立即生效#sysctl –p

  • 最小化安装centos不能make问题的解决方法

    解决问题的方法:

    安装:

    yum -y install gcc automake autoconf libtool make

    安装g++:

    yum -y install gcc gcc-c++

     

  • CentOS / Redhat Iptables Firewall Configuration Tutorial

    #!/bin/bash

    # A sample firewall shell script

    IPT=”/sbin/iptables”

    SPAMLIST=”blockedip”

    SPAMDROPMSG=”BLOCKED IP DROP”

    SYSCTL=”/sbin/sysctl”

    BLOCKEDIPS=”/root/scripts/blocked.ips.txt”

     

    # Stop certain attacks

    echo “Setting sysctl IPv4 settings…”

    $SYSCTL net.ipv4.ip_forward=0

    $SYSCTL net.ipv4.conf.all.send_redirects=0

    $SYSCTL net.ipv4.conf.default.send_redirects=0

    $SYSCTL net.ipv4.conf.all.accept_source_route=0

    $SYSCTL net.ipv4.conf.all.accept_redirects=0

    $SYSCTL net.ipv4.conf.all.secure_redirects=0

    $SYSCTL net.ipv4.conf.all.log_martians=1

    $SYSCTL net.ipv4.conf.default.accept_source_route=0

    $SYSCTL net.ipv4.conf.default.accept_redirects=0

    $SYSCTL net.ipv4.conf.default.secure_redirects=0

    $SYSCTL net.ipv4.icmp_echo_ignore_broadcasts=1

    #$SYSCTL net.ipv4.icmp_ignore_bogus_error_messages=1

    $SYSCTL net.ipv4.tcp_syncookies=1

    $SYSCTL net.ipv4.conf.all.rp_filter=1

    $SYSCTL net.ipv4.conf.default.rp_filter=1

    $SYSCTL kernel.exec-shield=1

    $SYSCTL kernel.randomize_va_space=1

     

    echo “Starting IPv4 Firewall…”

    $IPT -F

    $IPT -X

    $IPT -t nat -F

    $IPT -t nat -X

    $IPT -t mangle -F

    $IPT -t mangle -X

     

    # load modules

    modprobe ip_conntrack

     

    [ -f “$BLOCKEDIPS” ] && BADIPS=$(egrep -v -E “^#|^$” “${BLOCKEDIPS}”)

     

    # interface connected to the Internet

    PUB_IF=”eth0″

     

    #Unlimited traffic for loopback

    $IPT -A INPUT -i lo -j ACCEPT

    $IPT -A OUTPUT -o lo -j ACCEPT

     

    # DROP all incomming traffic

    $IPT -P INPUT DROP

    $IPT -P OUTPUT DROP

    $IPT -P FORWARD DROP

     

    if [ -f “${BLOCKEDIPS}” ];

    then

    # create a new iptables list

    $IPT -N $SPAMLIST

     

    for ipblock in $BADIPS

    do

    $IPT -A $SPAMLIST -s $ipblock -j LOG –log-prefix “$SPAMDROPMSG ”

    $IPT -A $SPAMLIST -s $ipblock -j DROP

    done

     

    $IPT -I INPUT -j $SPAMLIST

    $IPT -I OUTPUT -j $SPAMLIST

    $IPT -I FORWARD -j $SPAMLIST

    fi

     

    # Block sync

    $IPT -A INPUT -i ${PUB_IF} -p tcp ! –syn -m state –state NEW -m limit –limit 5/m –limit-burst 7 -j LOG –log-level 4 –log-prefix “Drop Sync”

    $IPT -A INPUT -i ${PUB_IF} -p tcp ! –syn -m state –state NEW -j DROP

     

    # Block Fragments

    $IPT -A INPUT -i ${PUB_IF} -f -m limit –limit 5/m –limit-burst 7 -j LOG –log-level 4 –log-prefix “Fragments Packets”

    $IPT -A INPUT -i ${PUB_IF} -f -j DROP

     

    # Block bad stuff

    $IPT -A INPUT -i ${PUB_IF} -p tcp –tcp-flags ALL FIN,URG,PSH -j DROP

    $IPT -A INPUT -i ${PUB_IF} -p tcp –tcp-flags ALL ALL -j DROP

     

    $IPT -A INPUT -i ${PUB_IF} -p tcp –tcp-flags ALL NONE -m limit –limit 5/m –limit-burst 7 -j LOG –log-level 4 –log-prefix “NULL Packets”

    $IPT -A INPUT -i ${PUB_IF} -p tcp –tcp-flags ALL NONE -j DROP # NULL packets

     

    $IPT -A INPUT -i ${PUB_IF} -p tcp –tcp-flags SYN,RST SYN,RST -j DROP

     

    $IPT -A INPUT -i ${PUB_IF} -p tcp –tcp-flags SYN,FIN SYN,FIN -m limit –limit 5/m –limit-burst 7 -j LOG –log-level 4 –log-prefix “XMAS Packets”

    $IPT -A INPUT -i ${PUB_IF} -p tcp –tcp-flags SYN,FIN SYN,FIN -j DROP #XMAS

     

    $IPT -A INPUT -i ${PUB_IF} -p tcp –tcp-flags FIN,ACK FIN -m limit –limit 5/m –limit-burst 7 -j LOG –log-level 4 –log-prefix “Fin Packets Scan”

    $IPT -A INPUT -i ${PUB_IF} -p tcp –tcp-flags FIN,ACK FIN -j DROP # FIN packet scans

     

    $IPT -A INPUT -i ${PUB_IF} -p tcp –tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP

     

    # Allow full outgoing connection but no incomming stuff

    $IPT -A INPUT -i ${PUB_IF} -m state –state ESTABLISHED,RELATED -j ACCEPT

    $IPT -A OUTPUT -o ${PUB_IF} -m state –state NEW,ESTABLISHED,RELATED -j ACCEPT

     

    # Allow ssh

    $IPT -A INPUT -i ${PUB_IF} -p tcp –destination-port 22 -j ACCEPT

     

    # Allow http / https (open port 80 / 443)

    $IPT -A INPUT -i ${PUB_IF} -p tcp –destination-port 80 -j ACCEPT

    #$IPT -A INPUT -o ${PUB_IF} -p tcp –destination-port 443 -j ACCEPT

     

    # allow incomming ICMP ping pong stuff

    $IPT -A INPUT -i ${PUB_IF} -p icmp –icmp-type 8 -m state –state NEW,ESTABLISHED,RELATED -j ACCEPT

    #$IPT -A OUTPUT -o ${PUB_IF} -p icmp –icmp-type 0 -m state –state ESTABLISHED,RELATED -j ACCEPT

     

    # Allow port 53 tcp/udp (DNS Server)

    $IPT -A INPUT -i ${PUB_IF} -p udp –dport 53 -m state –state NEW,ESTABLISHED,RELATED -j ACCEPT

    #$IPT -A OUTPUT -o ${PUB_IF} -p udp –sport 53 -m state –state ESTABLISHED,RELATED -j ACCEPT

     

    $IPT -A INPUT -i ${PUB_IF} -p tcp –destination-port 53 -m state –state NEW,ESTABLISHED,RELATED -j ACCEPT

    #$IPT -A OUTPUT -o ${PUB_IF} -p tcp –sport 53 -m state –state ESTABLISHED,RELATED -j ACCEPT

     

    # Open port 110 (pop3) / 143

    $IPT -A INPUT -i ${PUB_IF} -p tcp –destination-port 110 -j ACCEPT

    $IPT -A INPUT -i ${PUB_IF} -p tcp –destination-port 143 -j ACCEPT

     

    ##### Add your rules below ######

    #

    #

    ##### END your rules ############

     

    # Do not log smb/windows sharing packets – too much logging

    $IPT -A INPUT -p tcp -i ${PUB_IF} –dport 137:139 -j REJECT

    $IPT -A INPUT -p udp -i ${PUB_IF} –dport 137:139 -j REJECT

     

    # log everything else and drop

    $IPT -A INPUT -j LOG

    $IPT -A FORWARD -j LOG

    $IPT -A INPUT -j DROP

     

    exit 0

  • pptpd安装脚本

    脚本网上找的,32位系统适用,内容如下

    #! /bin/sh

    #

    ### BEGIN INIT INFO

    # Provides: pptpd instll

    # PowerBY: fireye

    # website: http//www.hichou.com www.qinday.com

    # Description: pptpd install for centos vps

    ### END INIT INFO

    #

     

    yum remove -y pptpd ppp

    iptables –flush POSTROUTING –table nat

    iptables –flush FORWARD

    rm -rf /etc/pptpd.conf

    rm -rf /etc/ppp

     

    wget http://packages.sw.be/dkms/dkms-2.1.1.2-1.el5.rf.noarch.rpm

    wget “http://nchc.dl.sourceforge.net/project/poptop/mppe%20module%20builder/kernel_ppp_mppe-1.0.2%20dkms-2.0.6/kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm”

    wget http://www.diahosting.com/dload/pptpd-1.3.4-1.rhel5.1.i386.rpm

    wget ftp://ftp.ntua.gr/pub/net/poptop/OldFiles/pptpd-1.1.3-1.i386.rpm

    wget http://mirrors.163.com/centos/5.6/os/i386/CentOS/ppp-2.4.4-2.el5.i386.rpm

     

    yum -y install make libpcap iptables gcc-c++ logrotate tar cpio perl pam tcp_wrappers

    rpm -ivh dkms-2.1.1.2-1.el5.rf.noarch.rpm

    rpm -ivh kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm

    rpm -qa kernel_ppp_mppe

    rpm -Uvh ppp-2.4.4-2.el5.i386.rpm

    rpm -ivh pptpd-1.3.4-1.rhel5.1.i386.rpm

     

    mknod /dev/ppp c 108 0

    echo 1 > /proc/sys/net/ipv4/ip_forward

    echo “mknod /dev/ppp c 108 0″ >> /etc/rc.local

    echo “echo 1 > /proc/sys/net/ipv4/ip_forward” >> /etc/rc.local

    echo “localip 172.16.36.1″ >> /etc/pptpd.conf

    echo “remoteip 172.16.36.2-254″ >> /etc/pptpd.conf

    echo “ms-dns 8.8.8.8″ >> /etc/ppp/options.pptpd

    echo “ms-dns 8.8.4.4″ >> /etc/ppp/options.pptpd

     

    pass=`openssl rand 6 -base64`

    if [ “$1” != “” ]

    then pass=$1

    fi

     

    echo “vpn pptpd ${pass} *” >> /etc/ppp/chap-secrets

     

    iptables -t nat -A POSTROUTING -s 172.16.36.0/24 -j SNAT –to-source `ifconfig | grep ‘inet addr:’| grep -v ’127.0.0.1′ | cut -d: -f2 | awk ‘NR==1 { print $1}’`

    iptables -A FORWARD -p tcp –syn -s 172.16.36.0/24 -j TCPMSS –set-mss 1356

    iptables -A RH-Firewall-1-INPUT -p tcp -m state –state NEW -m tcp –dport 1723 -j ACCEPT

    iptables -A RH-Firewall-1-INPUT -p tcp -m state –state NEW -m tcp –dport 47 -j ACCEPT

     

    service iptables save

    chkconfig iptables on

    chkconfig pptpd on

     

    service iptables start

    service pptpd restart

     

    echo “VPN service is installed, your VPN username is vpn, VPN password is ${pass}”

    VPN service is installed, your VPN username is vpn, VPN password is OBoyvanl

  • eAccelerator 配置参数详解

    eaccelerator.shm_size=”32″

    eAccelerator 可以使用的共享内存的数量 (以兆为单位) . “0” 是指操作系统的默认值. 默认值是 “0”.可根据服务器的实际情况来调整,16,32,64,128都是可以的。

    eaccelerator.cache_dir=””/tmp/eaccelerator”

    这个目录是给磁盘缓存使用. eAccelerator 在这里储存预先编译好的代码, 进程数据, 内容以及用户的自定义内容. 同样的数据也能被储存在共享内存中 (这样可以提高访问速度). 默认的设置是 “/tmp/eaccelerator”.

    eaccelerator.enable=”1″

    开启或关闭 eAccelerator。”1″ 为开启,”0″ 为关闭。默认值为 “1”。

    eaccelerator.optimizer=”1″

    启或关闭内部优化器,可以提升代码执行速度。”1″ 为开启,”0″ 为关闭。默认值为 “1”。

    eaccelerator.check_mtime=”1″

    打开或者关闭 PHP 的文件修改检查. “1” 是指打开, “0” 是指关闭. 如果您在修改以后重新编译 PHP 的文件,那么您应当设置为 “1”. 默认值是 “1”.

    eaccelerator.debug=”0″

    开启或关闭调试日志记录。”1″ 为开启,”0″ 为关闭。默认值为 “0”。会将缓存命中得记录写入日志。

    eaccelerator.filter=””

    判断哪些 PHP 文件必须缓存。您可以指定缓存和不缓存的文件类型(如 “*.php *.phtml”等)

    如果参数以 “!” 开头,则匹配这些参数的文件被忽略缓存。默认值为 “”,即,所有 PHP 文件都将被缓存。

    eaccelerator.shm_max=”0″

    当使用 ” eaccelerator_put() ” 函数时禁止其向共享内存中存储过大的文件。该参数指定允许存储的最大值,单位:字节 (10240, 10K, 1M)。”0″ 为不限制。默认值为 “0”。

    eaccelerator.shm_ttl=”0″

    当 eAccelerator 获取新脚本的共享内存大小失败时,它将从共享内存中删除所有在最后 “shm_ttl” 秒内没有存取的脚本缓存。默认值为 “0”,即:不从共享内春中删除任何缓存文件。

    eaccelerator.shm_prune_period=”0″

    当 eAccelerator 获取新脚本的共享内存大小失败时,他将试图从共享内存中删除早于”shm_prune_period” 秒的缓存脚本。默认值为 “0”,即:不从共享内春中删除任何缓存文件。

    eaccelerator.shm_only=”0″

    允许或禁止将已编译脚本缓存在磁盘上。该选项对 session 数据和内容缓存无效。默认值为 “0”,即:使用磁盘和共享内存进行缓存。

    eaccelerator.compress=”1″

    允许或禁止压缩内容缓存。默认值为 “1”,即:允许压缩。

    eaccelerator.compress_level=”9″

    指定内容缓存的压缩等级。默认值为 “9”,为最高等级。

    eaccelerator.keys = “disk_only”

    eaccelerator.session = “disk_only”

    eaccelerator.content = “disk_only”

    设置内容缓存的存放的地方,可以设置为:

    shm_and_disk 在共享缓存和硬盘(默认值)

    shm 默认存在共享内存,如果共享内存已满或大小超过 “eaccelerator.shm_max” 的值,就存到硬盘

    shm_only 只存放在共享内存

    disk_only 只存放在硬盘

    none 不缓存数据

    eaccelerator.allowed_admin_path = “/var/www/html/21andy.com/eaccelerator”

    这是控制面板的地址

    安装包里有个control.php,你把它复制到网站的任意目录,可以用它查看和管理,这个必须指定,否则查看缓存内容的时候会出错

    最后,来看一下我的 eAccelerator 设置

    ; eaccelerator

    [eaccelerator]

    zend_extension=”/usr/local/lib/php/20050922/eaccelerator.so”

    eaccelerator.shm_size=”16″

    eaccelerator.cache_dir=”/tmp/eaccelerator”

    eaccelerator.enable=”1″

    eaccelerator.optimizer=”1″

    eaccelerator.check_mtime=”1″

    eaccelerator.debug=”0″

    eaccelerator.filter=””

    eaccelerator.shm_max=”0″

    eaccelerator.shm_ttl=”3600″

    eaccelerator.shm_prune_period=”3600″

    eaccelerator.shm_only=”0″

    eaccelerator.compress=”1″

    eaccelerator.compress_level=”9″

    eaccelerator.keys = “disk_only”

    eaccelerator.sessions = “disk_only”

    eaccelerator.content = “disk_only”

  • 504 Gateway Time-out(nginx)的处理

    在nginx.conf配置里加入:

    fastcgi_buffers 8 128k;

    send_timeout 60;

    注意添加位置在

    http{ }

    里,否则不工作

    如下上面的设置后还是有504 Gateway Time-out错误,则继续修改添加以下部分

    http{

    ………………

    fastcgi_connect_timeout 300;

    fastcgi_send_timeout 300;

    fastcgi_read_timeout 300;

    fastcgi_buffer_size 64k;

    fastcgi_buffers 4 64k;

    fastcgi_busy_buffers_size 128k;

    fastcgi_temp_file_write_size 128k;

    ………………

    }

  • Debian 清除已删除软件包的配置文件

    今天清理一下系统,使用了一个命令行,可能对其他人有参考价值

     

    dpkg -l |grep “^rc”|awk ‘{print $2}’ |xargs aptitude -y purge

     

    用途:

     

    删除已经删除的软件包的残留配置文件。因为 debian 中 remove 包不删除配置文件,purge 才能清除,但根据依赖关系自动清除都是 remove,在加上自己失手操作,所以用得时间长了,难免残留很多没必要的配置文件,比较烦,于是有了上述操作。

     

    说明:

     

    1) dpkg -l

     

    列出系统中安装的所有包的状态,`ii’ 开头的是正常安装的包,`rc’开头的则是删除但仍留下配置文件的包,其他状态则是有错误的状态,自己执行一次就明白了,输出结果的开头有说明的。

     

    2) grep “^rc”

     

    提取以 rc 开头的包,也就是被删除但仍残留配置文件的包的信息的行。

     

    3) awk ‘{print $2}’

     

    打印这些包的名字,他们位于 dpkg -l 输出结果的第二个字段,估计有很多人是通过这个命令认识到 awk 的,也有很多人只在这个命令行中才使用 awk,我就是其中之一。

     

    4) xargs aptitude -y purge

     

    把上述输出,也就是要清除配置文件的包的名字放在 aptitude -y purge 后面,purge命令会清除配置文件,而 -y 参数会自动对后面 aptitude 命令的提示回答是,这个开关通常是危险的,所以在一般情况下不要轻易使用,而在这里,如果你确定这些包的配置文件的清除是没有问题的的话,可以使用这个开关。

  • android用终端安装软件 apk

    cp /sdcard/tflash/test.apk /data/app/

    chmod 644 /data/app/test.apk

    chown system.system /data/app/test.apk

  • phpmyadmin导入mysql数据库sql文件最大限制2M

    php配置文件php.ini中默认设置允许上传的最大文件数据为2M,因此通过phpmyadmin Web界面管理mysql数据库时,能够导入mysql数据库的最大sql文件或gzip文件大小也是2M (2048K)。如果要导入大于2M的sql数据库文件,有以下几种解决方法。

     

    最直接的解决办法当然就是修改php.ini配置文件的设置,即修改默认的 upload_max_filesize = 2M, memory_limit = 128M; post_max_size = 8M 。 比如我想上传一个27M的sql数据库文件,则可以修改为 upload_max_filesize = 32M, post_max_size = 32M,post_max_size 和 memory_limit 的值至少要大于等于upload_max_filesize的设置值。增加了php.ini中的最大上传设置数据之后,重启Apache数据库,再打开phpmyadmin 就可以上传大的sql数据库文件等等。

     

    另外一种方法适用于没有权限修改网站服务器php.ini文件设置的用户,可以使用phpmyadmin提供的$cfg[‘UploadDir’]方法,$cfg[‘UploadDir’]方法允许我们通过scp、ftp等文件传输方式上传数据库文件到网站服务器,然后phpmyadmin从服务器的临时目录中导入数据库文件。该上传的文件名后缀必须为.sql或者.sql.bz2 或.sql.gz 。具体步骤如下:

     

    在phpMyAdmin的根目录下找到config.inc.php文件(config.sample.inc.php),打开找到$cfg[‘UploadDir’] 和$cfg[‘SaveDir’],注释为“Directories for saving/loading files from server ”,即通过$cfg[‘UploadDir’] 和$cfg[‘SaveDir’]可以导入服务器上的SQL文件到数据库,以及将从数据库导出的SQL文件保存到服务器上的目录中。

     

    修改这个参数为$cfg[‘UploadDir’] = ‘ImportSQLFile’; 和 $cfg[‘SaveDir’] = ‘ExportSQLFile’;

     

    再在phpMyAdmin中建立两个文件夹,ImportSQLFile和ExportSQLFile。也就是将需要导入的sql文件复制到ImportSQLFile文件夹中,上传到服务器上。选择需要导入的数据库名,选择导入(Import),就会发现在文件导入(File to import)的地方多出来一个导入服务器上的SQL文件(web server upload directory)。通过这种方法可以突破php.ini的上传文件限制。导出/备份mysql数据的时候也可以直接保存在服务器上,保存到$cfg[‘SaveDir’] = ‘ExportSQLFile’; 中指定的文件夹中。

     

    另外,如果网站服务器和国外美国主机dreamhost一样支持Shell方式(SSH,SFTP,命令行)传输文件,那么通过shell方式导入Mysql数据库很大的sql文件都不成问题,直接在Mysql中使用命令:source filename.sql。

     

    如果还是不能上传大于2M的数据库数据文件,可以检查一下你的phpmyadmin 版本是不是最新的,据说phpmyadmin低于 2.7.0版本会出现类似memory内存、http错误和timeout超时等各种问题,因此最好安装phpmyadmin升级到最新版本。

  • error: ‘Access denied for user ‘debian-sys-maint’@’localhost’ (using password: YES)

    debian-sys-maint的密码是安装mysql时随时生成的

    停止或重启服务都靠它

    如果你修改了它的密码或覆盖掉密码,就会出现错误

    error: ‘Access denied for user ‘debian-sys-maint’@’localhost’ (using password: YES)’

    查看/etc/mysql/debian.cnf查看内容,可以看到有这个mysql连接用户:[client]

    host = localhost

    user = debian-sys-maint

    password = G1I2JcALeXXvyC50

    socket = /var/run/mysqld/mysqld.sock

    [mysql_upgrade]

    user = debian-sys-maint

    password = G1I2JcALeXXvyC50

    socket = /var/run/mysqld/mysqld.sock

    basedir = /usr

    直接用mysql登录,为debian-sys-maint用户改密:

    mysql>SET PASSWORD FOR ‘debian-sys-maint’@’localhost’ = PASSWORD(‘这里就是上面看到的密码’);

    mysql> flush privileges;

    这样就OK了

    如果删除了改用户,那只有添加了

    mysql> GRANT ALL PRIVILEGES ON *.* TO ‘debian-sys-maint’@’localhost’ IDENTIFIED BY ‘这里就是上面看到的密码” WITH GRANT OPTION;

    mysql> flush privileges;