7、Warning警告分析 在实验mysqld启动的时候,我们看到了一条Warning告警信息。 [mysql@bspdev mysql-5.5.25-linux2.6-i686]$ mysqld & [1] 28398 [mysql@bspdev mysql-5.5.25-linux2.6-i686]$ 120701 4:21:42 [Warning] Changed limits: max_open_files: 1024 max_connections: 151 table_cache: 431 120701 4:21:42 [Note] Plugin 'FEDERATED' is disabled. 虽然告警信息不是什么重要问题,但是还是需要稍微关注一下。 从提示内容上看,似乎是关于用户连接数、同时打开文件数目和缓存的一些内容,存在限制。这让我们想起了Oracle在安装时,进行的操作系统用户限制开启过程。查阅资料后,只需要将mysql用户的限制开启就可以了。 [mysql@bspdev mysql-5.5.25-linux2.6-i686]$ ulimit -Sa | grep "open files" open files (-n) 1024 [mysql@bspdev mysql-5.5.25-linux2.6-i686]$ ulimit -Ha | grep "open files" open files (-n) 1024 [mysql@bspdev mysql-5.5.25-linux2.6-i686]$ su - root Password: --修改/etc/security/limits.conf文件内容; [root@bspdev ~]# vi /etc/security/limits.conf # /etc/security/limits.conf # #* soft core 0 #* hard rss 10000 #@student hard nproc 20 #@faculty soft nproc 20 #@faculty hard nproc 50 #ftp hard nproc 0 #@student - maxlogins 4 #添加内容; mysql hard nofile 8192 mysql soft nofile 1200 再尝试开启服务器,warning信息消失。 [root@bspdev ~]# su - mysql [mysql@bspdev ~]$ mysqld & [1] 16285 [mysql@bspdev ~]$ 120701 4:26:21 [Note] Plugin 'FEDERATED' is disabled. 120701 4:26:21 InnoDB: The InnoDB memory heap is disabled 120701 4:26:21 InnoDB: Mutexes and rw_locks use InnoDB's own implementation 120701 4:26:21 InnoDB: Compressed tables use zlib 1.2.3 120701 4:26:21 InnoDB: Using Linux native AIO (篇幅原因,有省略……) [mysql@bspdev ~]$ ps -ef | grep mysqld mysql 16285 16257 1 04:26 pts/0 00:00:00 mysqld mysql 16304 16257 0 04:26 pts/0 00:00:00 grep mysqld 8、用户密码问题 本地连接成功之后,笔者尝试使用远程连接。结果发现linux版本的一些安全限制。 --从远程机器连接; C:\Users\51ibm>mysql -h 192.168.137.89 -u root ERROR 1130 (HY000): Host '192.168.137.1' is not allowed to connect to this MySQL server 此时,MySQL服务器端日志记录错误信息。 [Warning] IP address '192.168.137.1' could not be resolved: Temporary failure in name resolution 从信息上看,应该是登录存在一些限制内容。 [mysql@bspdev ~]$ mysql -u root Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.5.25-log MySQL Community Server (GPL) Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> use mysql Database changed mysql> select host, name, password from user; ERROR 1054 (42S22): Unknown column 'name' in 'field list' mysql> select host, user, password from user; +--------------------+------+----------+ | host | user | password | +--------------------+------+----------+ | localhost | root | | | bspdev.localdomain | root | | | 127.0.0.1 | root | | | ::1 | root | | | localhost | | | | bspdev.localdomain | | | +--------------------+------+----------+ 6 rows in set (0.00 sec) mysql> 注意,在权限表中,没有针对其他ip登陆的许可权限。说明Linux版本默认情况下,允许本地登陆,没有密码要求。但是不允许用户从其他客户端进行登陆。 我们需要人工的加以授权。 mysql> grant all on *.* to root@'%' identified by 'root' with grant option; Query OK, 0 rows affected (0.00 sec) mysql> select host, user, password from user; +--------------------+------+-------------------------------------------+ | host | user | password | +--------------------+------+-------------------------------------------+ | localhost | root | | | bspdev.localdomain | root | | | 127.0.0.1 | root | | | ::1 | root | | | localhost | | | | bspdev.localdomain | | | | % | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | +--------------------+------+-------------------------------------------+ 7 rows in set (0.00 sec) 此时,我们可以从非服务器进行登陆,而且必须输入密码。 --不输入用户密码登录,被拒绝; C:\Users\51ibm>mysql -h 192.168.137.89 -u root ERROR 1045 (28000): Access denied for user 'root'@'192.168.137.1' (using passwor d: NO) --输入root用户密码,通过; C:\Users\51ibm>mysql -h 192.168.137.89 -u root -proot Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 Server version: 5.5.25-log MySQL Community Server (GPL) Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> 额外说明,从那张user表中,我们可以构建这样的权限体系。相同的用户名,从不同的机器上登陆时使用不同的密码。 9、Linux服务化 在Windows中,我们是将MySQL作为一项服务,添加在服务列表中进行启动关闭管理。在Linux中,我们也可以使用相同的配置内容。 --首先关闭mysqld服务 [mysql@bspdev ~]$ ps -ef | grep mysqld mysql 16285 1 0 04:26 ? 00:00:00 mysqld mysql 16475 16442 0 04:37 pts/2 00:00:00 grep mysqld [mysql@bspdev ~]$ mysqladmin -u root shutdown [mysql@bspdev ~]$ ps -ef | grep mysqld mysql 16481 16442 0 04:38 pts/2 00:00:00 grep mysqld [mysql@bspdev ~]$ 将mysqld作为服务添加到列表中。 [root@bspdev ~]# cd /mysql/mysql-5.5.25-linux2.6-i686/support-files/ [root@bspdev support-files]# cp mysql.server /etc/rc.d/init.d/mysqld [root@bspdev support-files]# chmod 700 /etc/init.d/mysqld [root@bspdev support-files]# chkconfig --add mysqld [root@bspdev support-files]# chkconfig --level 345 mysqld on 之后,我们就可以通过service mysqld start来启动MySQL数据库了。 [root@bspdev support-files]# service mysqld start Starting MySQL...[ OK ] [root@bspdev support-files]# mysql -u root -bash: mysql: command not found [root@bspdev support-files]# su - mysql [mysql@bspdev ~]$ mysql -u root Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 1 Server version: 5.5.25-log MySQL Community Server (GPL) Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> 对service命令,我们还可以使用如status、stop等命令。 [root@bspdev ~]# service mysqld status MySQL running (16839)[ OK ] [root@bspdev ~]# service mysqld stop Shutting down MySQL.[ OK ] [root@bspdev ~]# ps -ef | grep mysqld root 16988 16902 0 04:44 pts/2 00:00:00 grep mysqld [root@bspdev ~]# 10、结论 作为目前最流行的开源数据库产品,MySQL是比较成功的。学习安装MySQL,只是学习的一个开始入手点。之后,还有很多的问题需要解决和学习,需要不断的坚持和努力才能完成。 (责任编辑:IT) |