默认安装后空密码,以mysqladmin命令设置密码:php
mysqladmin -uroot password "password"html
Mysql命令设置密码:mysql
mysql> set password for root@localhost=password('password);程序员
更改密码:web
update mysql.user set password=password('password') where user='root';flush privileges;sql
2.删除默认的数据库和用户shell
drop database test;use mysql;delete from db;delete from user where not(host="localhost" and user="root");flush privileges;数据库
3. 更改默认root帐号名称:apache
update mysql.user set user="admin" where user="root";flush privileges;centos
4. 本地文件安全:
set-variable=local-infile=0
5. 禁止远程链接mysql,远程管理可经过phpmyadmin,编辑my.cnf在[mysqld]添加:
skip-networking
6.最小权限用户:
create database db1;grant select,insert,update,delete,create,drop privileges on database.* to user@localhost identified by 'passwd';
7. 限制普通用户浏览其它数据库,编辑my.cnf在[mysqld]添加:
--skip-show-database
8.快速修复MySQL数据库
修复数据库
mysqlcheck -A -o -r -p
修复指定的数据库
mysqlcheck -o -r database -p
9.跟据内存的大小选择MySQL的配置文件:
my-small.cnf # > my-medium.cnf # 32M - 64Mmy-large.cnf # memory = 512Mmy-huge.cnf # 1G-2G
my-innodb-heavy-4G.cnf # 4GB
----------------------------------------------------------------------------
更改Apache默认网站目录
而后把你的项目移到配置好的目录下便可。
---------------------------------------------------------------------------------------------------------
Apache安全配置
ServerTokens OS 修改成:ServerTokens Prod (在出现错误页的时候不显示服务器操做系统的名称)
ServerSignature On 修改成:ServerSignature Off(不回显apache版本信息)
删除默认的页面,防止泄露服务器信息
将Options Indexes FollowSymLinks改成Options -Indexes FollowSymLinks
DirectoryIndex index.html
为apache单独创建一个运行帐户及帐户组,并在httpd.conf配置
User apacheGroup apache
取消apache运行帐户对网站目录的写入权限,上传目录除外,其余非网站目录尽可能不给权限
取消掉了运行帐户对sh等的执行权限后可以防止webshell经过默认的sh执行命令
<Directory "/var/www/html/aaa"> <FilesMatch ".(php|php5)$"> Deny from all </FilesMatch> </Directory>
<Directory "/var/www/html/aaa"> Deny from all </Directory>
<Directory "/var/www/html/aaa"> Order Deny,Allow Deny from all Allow from 192.168.1.111 </Directory>
<Files ~ ".txt$"> Order allow,deny Deny from all </Files>
这样能够防止一些直接扫描80端口的黑客
Listen 12345
AllowOverride All改成AllowOverride None
------------------------------------------------------------------------------------------------------------------------
php.ini的安全优化
例1:链接到本机上的MYSQL。
首先在打开DOS窗口,而后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,若是刚安装好MYSQL,超级用户root是没有密码的,故直接回车便可进入到MYSQL中了,MYSQL的提示符 是:mysql>。
例2:链接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入如下命令:
mysql -h110.110.110.110 -uroot -pabcd123
(注:u与root能够不用加空格,其它也同样)
MySQL默认没有密码,安装完毕增长密码的重要性是不言而喻的。
格式:mysqladmin -u用户名 -p旧密码 password 新密码
四、启动
MySQL安装完成后启动文件mysql在/etc/init.d目录下,在须要启动时运行下面命令便可。
[root@test1 init.d]# /etc/init.d/mysql start
/usr/bin/mysqladmin -u root -p shutdown
[root@test1 local]# /sbin/chkconfig –list
[root@test1 local]# /sbin/chkconfig – add mysql
[root@test1 local]# /sbin/chkconfig – del mysql
MySQL默认的数据文件存储目录为/var/lib/mysql。
假如要把目录移到/home/data下须要进行下面几步:
cd /home mkdir data
mysqladmin -u root -p shutdown
mv /var/lib/mysql /home/data/
这样就把MySQL的数据文件移动到了/home/data/mysql下
若是/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/下找到*.cnf文件,拷贝其中一个到/etc/并更名为my.cnf)中。
命令以下:
[root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
为保证MySQL可以正常工做,须要指明mysql.sock文件的产生位置。
修改socket=/var/lib/mysql/mysql.sock一行中等号右边的值为:/home/mysql/mysql.sock 。
操做以下:
vi my.cnf
(用vi工具编辑my.cnf文件,找到下列数据修改之)
# The MySQL server [mysqld]
port = 3306
#socket = /var/lib/mysql/mysql.sock(原内容,为了更稳妥用“#”注释此行)
socket = /home/data/mysql/mysql.sock (加上此行)
最后,须要修改MySQL启动脚本/etc/rc.d/init.d/mysql,把其中datadir=/var/lib/mysql一行中,等号右边的路径改为你如今的实际存放路径:home/data/mysql。
[root@test1 etc]# vi /etc/rc.d/init.d/mysql
#datadir=/var/lib/mysql (注释此行)
datadir=/home/data/mysql (加上此行)
/etc/rc.d/init.d/mysql start
或用reboot命令重启Linux
若是工做正常移动就成功了,不然对照前面的7步再检查一下。
注意:MySQL中每一个命令后都要以分号;结尾。
show databases;
刚开始时才两个数据库:mysql和test。MySQL库很重要它里面有MYSQL的系统信息,咱们改密码和新增用户,实际上就是用这个库进行操做。
use mysql; //打开库,学过FOXBASE的必定不会陌生吧
show tables;
describe 表名;
create database 库名;
use 库名;
create table 表名 (字段设定列表);
drop database 库名;
drop table 表名;
delete from 表名;
select * from 表名;
例如:增长几条相关纪录。
mysql> insert into name values('','张三','男','1971-10-01');
mysql> insert into name values('','白云','女','1972-05-20');
可用select命令来验证结果。
mysql> select * from name;
例如:将张三的出生年月改成1971-01-10
mysql> update name set csny='1971-01-10' where xm='张三';
例如:删除张三的纪录。
mysql> delete from name where xm='张三';
drop database if exists school; //若是存在SCHOOL则删除
create database school; //创建库SCHOOL
use school; //打开库SCHOOL
create table teacher //创建表TEACHER
(
id int(3) auto_increment not null primary key,
name char(10) not null,
address varchar(50) default ’深圳’,
year date
); //建表结束
//如下为插入字段
insert into teacher values(’’,’glchengang’,’深圳一中’,’1976-10-10’);
insert into teacher values(’’,’jack’,’深圳一中’,’1975-12-23’);
alter table dbname add column <字段名><字段选项>
alter table dbname change <旧字段名> <新字段名><选项>
alter table dbname drop column <字段名>