Linux问题集锦

1.-bash: ls: command not found

应该是环境变量配置出现了问题,解决方法:

export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

2.用grant all privileges 给mysql授权时,出现ERROR 1290(HY000)错误  

在用grant all privileges on *.* toroot@192.168.0.3 identified by "123"mysql数据库,作远程访问授权时,出现错误:
ERROR 1290
HY000):The MySQL server is running with the--skip-grant-tables option so it cannot execute this statement.
其解决办法如下:
呵呵:flush privileges;即可。
再用grant all命令。

3.启动mysql:

/etc/init.d/mysql restart



4.Linux:-bash: ***: command not found,系统很多命令都用不了,均提示没有此命令

解决办法:

先用:echo $PATH  
查看path是否含有:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

如果没有

先用临时环境变量(重启后消失)
#export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

然后就可以用那些命令了,进去修改永久环境变量:

1。修改profile文件:(所有用户)

#vi /etc/profile
加入:export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
保存退出。

2。修改.bashrc文件:(单独用户)

#vi /~/.bashrc (‘~’代表:$HOME,  .bashrc是每个用户家目录下都有的,ls -all)
加入:export PATH=$PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

保存退出。

重启系统,搞定。

也可以不用重启,使用命令:#source .bashrc


5.mysql 启动错误-server PID file could not be found

ERROR! MySQL server PID file could not be found!

[root@centos var]# service mysqld stop

MySQL manager or server PID file could not be found!        [FAILED]
解决办法:
首先查看一下进程
[root@ irxpert-test  /]# ps aux |grep mysq*
root          10274   0.0   0.0   68160   1336 ?               S       13:43     0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/irxpert-test.pid
mysql        10353   0.0   1.0 344360 39464 ?               Sl     13:43     0:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/lib/mysql/irxpert-test.err --pid-file=/var/lib/mysql/irxpert-test.pid
root         11884   0.0   0.0   63384     760 pts/1       S+     15:44     0:00 grep mysq*
如果看到上面的内容,那说明, Mysql 的进程卡死了,这时用就要把这些卡死的进程都关闭
[root@centos mysql]# kill  10274
[root@centos mysql]# kill  10353
启动 Mysql ok
[root@centos mysql]# service mysql start
Starting MySQL.           



6.Linux下修改Mysql的用户(root)的密码

修改的用户都以root为列。
一、拥有原来的myql的root的密码;
方法一:
在mysql系统外,使用mysqladmin
mysqladmin -u root -p password "test123"
Enter password: 【输入原来的密码】
方法二:
通过登录mysql系统,
mysql -uroot -p
Enter password: 【输入原来的密码】
mysql>use mysql;
mysql> update user set password=passworD("test") where user='root';
mysql> flush privileges;
mysql> exit;      
二、忘记原来的myql的root的密码;
首先,你必须要有操作系统的root权限了。要是连系统的root权限都没有的话,先考虑root系统再走下面的步骤。
类似于安全模式登录系统,有人建议说是pkill mysql,但是我不建议哈。因为当你执行了这个命令后,会导致这样的状况:
/etc/init.d/mysqld status
mysqld dead but subsys locked
这样即使你是在安全模式下启动mysql都未必会有用的,所以一般是这样/etc/init.d/mysqld stop,如果你不幸先用了pkill,那么就start一下再stop咯。
mysqld_safe --skip-grant-tables &
&,表示在后台运行,不再后台运行的话,就再打开一个终端咯。
mysql
mysql> use mysql;
mysql> UPDATE user SET password=password("test123") WHERE user='root';   
mysql> flush privileges;
mysql> exit;                         
##本来mysql是不分大小写的,但是这个是修改的mysql中的mysql数据库的具体的值,要注意到。



7.mysql安装过程中出现错误ERROR 1820 (HY000): You must SET PASSWORD before executing this statement解决

最近新装好的mysql在进入mysql工具时,总是有错误提示:
# mysql -u root -p
Enter password:
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
或者
# mysql -u root -p password 'newpassword'
Enter password:
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)' 
  现在终于找到解决方法了。本来准备重装的,现在不必了。
方法操作很简单,如下:
# /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root' and host='root' or host='localhost';//把空的用户密码都修改成非空的密码就行了。
mysql> FLUSH PRIVILEGES;
mysql> quit # /etc/init.d/mysqld restart
# mysql -uroot -p
Enter password: <输入新设的密码newpassword>
 
MySql5.6操作时报错:You must SET PASSWORD before executing this statement解决
mysql>  SET PASSWORD = PASSWORD('123456');
Query OK, 0 rows affected (0.03 sec)
mysql> create database roger;
Query OK, 1 row affected (0.00 sec)
也就是用mysql>  SET PASSWORD = PASSWORD('123456');这句话重新设置一次密码!

8.Linux关闭防火墙命令

Linux关闭防火墙命令

1) 永久性生效,重启后不会复原
开启:chkconfig iptables on
关闭:chkconfig iptables off

2) 即时生效,重启后复原
开启:service iptables start
关闭:service iptables stop

3)在开启了防火墙时,做如下设置,开启相关端口,
修改/etc/sysconfig/iptables 文件,添加以下内容:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

9.linux中mysql开启远程访问功能

2、添加新用户进行授权
#grant all privileges on *.* to 创建的用户名 @”%” identified by “密码”;
#flush privileges; #刷新刚才的内容
#格式:grant 权限 on 数据库名.表名 to 用户@登录主机 identified by “用户密码”;   
#@后面是访问mysql的客户端IP地址(或是 主机名) % 代表任意的客户端
#如果填写 localhost 为本地访问(那此用户就不能远程访问该my sql数据库了)。  
3、为现有的用户设置远程访问权限
#use  mysql;
#update db set host = ‘%’ where user = ‘用户名’;
#如果写成 host=localhost 那此用户就不具有远程访问权限   
#FLUSH PRIVILEGES;
4、查看修改后的结果
#use mysql; 
#select host,user,password from user;


10.在Linux开放3306端口

1.在/etc/sysconfig下找到iptables文件,打开后进行编辑,添加一行:

-A RH-Firewall-1-INPUT-m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

2.重新启动防火墙

/etc/rc.d/init.d/iptables restart


11.外网一直访问不了mysql,通过telnet ip 3306测试端口号也连接失败,后来发现原来是授权问题,在mysql中的user表发现有一个::1,后来将user.frm文件用本地的替换后,即可远程登录(当然确保3306已经开通,另外授权2)


12.mysql max_allowed_packet 设置过小导致记录写入失败

mysql根据配置文件会限制server接受的数据包大小。

有时候大的插入和更新会受max_allowed_packet 参数限制,导致写入或者更新失败。

查看目前配置

show VARIABLES like '%max_allowed_packet%';

显示的结果为:

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

| Variable_name      | Value   |

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

| max_allowed_packet | 1048576 |

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

以上说明目前的配置是:1M

 

修改方法

1、修改配置文件

可以编辑my.cnf来修改(windows下my.ini),在[mysqld]段或者mysql的server配置段进行修改。

max_allowed_packet = 20M

如果找不到my.cnf可以通过

mysql --help | grep my.cnf

去寻找my.cnf文件。

linux下该文件在/etc/下。

2、在mysql命令行中修改

在mysql 命令行中运行

set global max_allowed_packet = 2*1024*1024*10

然后退出命令行,重启mysql服务,再进入。

show VARIABLES like '%max_allowed_packet%';

查看下max_allowed_packet是否编辑成功

 
 注意:该值设置过小将导致单个记录超过限制后写入数据库失败,且后续记录写入也将失败。






  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值