CentOS学习

本篇的Cent OS,以Cent OS6.3 32位版本为例。
安装Cent OS服务器版,图解,可参考http://linux.chinaitlab.com/set/897498.html,最后选择安装版本时,注意选Minimal了。
(Centos切换至桌面:startx 、Centos :Ctrl + Alt + F1切换到桌面)


自动获取IP配置
编辑网卡配置文件,命令: vim /etc/sysconfig/network-scripts/ifcfg-eth0
更改ONBOOT=yes
更改BOOTPROTO为:
BOOTPROTO=dhcp
其他的如IPADDR、NETMASK等#号注释掉,保存退出
保留如下:
DEVICE="eth0"
BOOTPROTO="dhcp"
HWADDR="00:0C:29:4A:63:51"
MTU="1500"
NM_CONTROLLED="yes"
ONBOOT="yes" 
 
重启网络连接,命令: service network restart
备注:设置静态ip(强烈建议在修改前先备份,这是操作linux的一个好习惯。)
配置IP:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
HWADDR="00:0C:29:0E:8F:6E" #虚拟机的物理地址,不要修改
DEVICE="eth0" #描述网卡对应的设备名
BOOTPROTO="static" #设置网卡获得ip地址的方式,可能的选项为static,dhcp或bootp
MTU="1500"
NM_CONTROLLED="yes"
ONBOOT="yes"#系统启动是否启动此网络连接
USERCTL="no"#非root用户 不可控制
PEERDNS="no"#点对点的DNS
TYPE="Ethernet"#类型成为以太网
IPADDR="192.168.1.111"#ip地址
NETMASK="255.255.255.0"#子网掩码
GATEWAY="192.168.1.1"#默认网关
IPV6INIT="no"#禁止IPV6
DNS1="180.168.255.18"#第一个dns服务器
DNS2="116.228.111.118"#第二个dns服务器

配置DNS信息。

cp /etc/resolv.conf /etc/resolv.conf.bak
修改/etc/resolv.conf为如下内容:
vi /etc/resolv.conf
nameserver 180.168.255.18
nameserver 116.228.111.118

重启网络服务
service network restartc

rpm包的安装
    1.安装一个包:# rpm -ivh

  2.升级一个包:# rpm -Uvh

 3.移走一个包:# rpm -e

 4.安装参数
  --force 即使覆盖属于其它包的文件也强迫安装
  --nodeps 如果该RPM包的安装依赖其它包,即使其它包没装,也强迫安装。

 5.查询一个包是否被安装
  # rpm -q < rpm package name>

 6.得到被安装的包的信息
  # rpm -qi < rpm package name>

 7.列出该包中有哪些文件
  # rpm -ql < rpm package name>

 8.列出服务器上的一个文件属于哪一个RPM包
  #rpm -qf

 9.可综合好几个参数一起用
  # rpm -qil < rpm package name>

 10.列出所有被安装的rpm package
  # rpm -qa

 1.列出一个未被安装进系统的RPM包文件中包含有哪些文件?
  # rpm -qilp < rpm package name>

(下面介绍下rpm包安装与卸载)
rpm包的卸载:
    rpm -qa | grep 包名
    这个命令是为了把包名相关的包都列出来     

    rpm -e 文件名
    这个命令就是你想卸载的软件,后面是包名称,最后的版本号是不用打的

   例如:
    # rpm -qa |  grep mysql

    mod_auth_mysql-2.6.1-2.2 
    php-mysql-5.3.9-3.15 
    mysql-devel-5.1.77-1.CenOS 5.2

    mysql-5.0.77-1.CenOS 5.2
    mysqlclient10-5.0.77-1.CentOS 5.2
    libdbi-dbd-mysql-0.6.5-10.CentOS 5.2

   # rpm -e mysqlclient

  yum安装:# yum install 包名
  yum卸载:# yum -y remove 包名

安装nano编辑器
  yum -y install nano

安装SSH
   安装:yum install ssh
   启动SSH:service sshd start
   设置开机运行: chkconfig sshd on
   安装好了SSH,就可以用SecureCRT连接服务器了。

备注:有一次我遇到安装完sshd并成功启动后,无法连接centos服务器,查了下资料,设置下/etc目录下的
hosts.deny文件 与hosts.allow文件,分别在文件最后面加上sshd:all,然后重启下sshd,则访问成功。

创建用户

先添加用户组
groupadd wangxin
添加用户
useradd -d -m -g –G –p
常用的就是上面几个参数,意思分别为:
-d :指定用户主目录。如果此目录不存在,同时使用 -m 就会创建此目录。
-m :创建用户主目录
-g :用户所属组 ID
-G :用户所属组名
-p :登录密码。注意这个登录密码不是明文,是指加密后的密码。
范例:useradd wangxin -m -g wangxin
将会创建一个 wangxin 的用户,并自动创建 /home/wangxin 的用户主目录,并将用户添加至 wangxin 组中。
centos 更新或创建密码命令:passwd wangxin
创建密码时,会提示输入两次
若当前是root用户
su wangxin
就切换到wangxin用户下了。

端口映射
因为考虑下面安装Tomcat及数据,需要进行端口映射,这里先讲
注:默认应该是开启了80端口的,但得注意,linux系统下面,貌似1000以后的端口只有root用户才有操作权限,、
比如,将tomcat安装到wangxin用户下,并且将tomcat的端口8080改为80,则,启动tomcat只能以root账号进行启动,
wangxin用户启动报错或提示没有权限。暂时我不知道解决办法。
执行命令:
nano /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 8080 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT
这里我开启了三个端口,分别是8080,1433,1521,代表Tomcat,Mysql,Oracel的默认端口

安装与配置JDK
下载JDK离线包:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
或者:http://download.csdn.net/download/jimhiihi/4521618
a.接下来,登录linux系统,赋予执行权限,命令如下:
# chmod -R 775 jdk-6u32-linux-i586.bin
 
b.执行jdk的安装.
# ./jdk-6u32-linux-i586.bin
 
安装过程中,会提示您按回车键,敲回车键即可. 会在linux的当前目录下,产生一个jdk1.6.0_32文件.
jdk安装完成.
 
c.配置环境变量.
环境变量的配置分为几种方式,根据自己的选择配置:
 
c.a:在/etc/profile文件中配置JAVA_HOME以及PATH和CLASS_PATH
因为这样的设置将对所以用户的shell都生效,对系统安全会产生影响。 
就是在这个文件的最后加上: 
export JAVA_HOME=/home/wangxin/jdk1.6.0_32
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

c.b:修改.bashrc文件来配置环境变量:
#vi .bashrc 
export JAVA_HOME=/home/wangxin/jdk1.6.0_32
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

安装Tomcat
下载Tomcat离线包:
http://apache.etoak.com/tomcat/tomcat-6/v6.0.35/bin/apache-tomcat-6.0.35.tar.gz

解压 tar zxvf apache-tomcat-6.0.35.tar.gz 到当前目录
在/etc/profile或者.bashrc文件配置下环境变量,最好与JDK的环境变量配置在同一个配置文件
我这里JDK是配置在.bashrc文件,所以Tomcat的环境变量也配置到.bashrc文件
export TOMCAT_HOME=/home/wangxin/apache-tomcat-6.0.35

启动系统后,
 在客户端输入http://192.168.138.128:8080
 发现不能访问,是因为CentOS系统中,默认iptables防火墙设置的原因,没有允许8080端口
 编辑/etc/sysconfig/iptables
 加入一行
 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
 最后再重启一下service iptables restart

安装mysql
执行命令
yum -y install mysql-server
安装的过程可能得稍微花点时间,但也不长
安装完以后,改下配置,主要是针对编码
nano /etc/my.cnf

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1  ← 找到这一行,在这一行的下面添加新的规则,让MySQL的默认编码为UTF-8
default-character-set = utf8  ← 添加这一行
 
然后在配置文件的文尾填加如下语句:
 
[mysql]
default-character-set = utf8
 
启动MySQL服务
 
[root@sample ~]# chkconfig mysqld on  ← 设置MySQL服务随系统启动自启动
 
[root@sample ~]# chkconfig --list mysqld  ← 确认MySQL自启动 
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off  ← 如果2--5为on的状态就OK
 
[root@sample ~]#/etc/rc.d/init.d/mysqld start  ← 启动MySQL服务
 
Initializing MySQL database:         [ OK ]
Starting MySQL:              [ OK ]
MySQL初始环境设定
 
[1]为MySQL的root用户设置密码
 
MySQL在刚刚被安装的时候,它的root用户是没有被设置密码的。首先来设置MySQL的root密码。
 
[root@sample ~]# mysql -u root  ← 用root用户登录MySQL服务器
 
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 4.1.20
 
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
 
mysql> select user,host,password from mysql.user;  ← 查看用户信息
+------+------------------------------+---------------+
| user | host          | password |
+------+------------------------------+---------------+
| root | localhost        |       |  ← root密码为空 
| root | sample.centospub.com  |       |  ← root密码为空
|   | sample.centospub.com |       |
|   | localhost       |       |
|root | %                                 |XXX      |
|   |                            |       |
+------+------------------------------+---------------+
 
4 rows in set (0.00 sec)
 
mysql> set password for 在这里填入root密码');  ← 设置root密码
Query OK, 0 rows affected (0.01 sec)
 
mysql> set password for 在这里填入root密码');  ← 设置root密码
Query OK, 0 rows affected (0.01 sec)只有设置了这个才可以,才可以通过数据库来安装网址
  
mysql> set password for );  ← 设置root密码
Query OK, 0 rows affected (0.01 sec)
 
mysql> select user,host,password from mysql.user;  ← 查看用户信息
+------+--------------------------------+--------------------------+
| user | host          | password     |
+------+--------------------------------+--------------------------+
| root | localhost        | 19b68057189b027f |  ← root密码被设置
| root | sample.centospub.com   | 19b68057189b027f |  ← root密码被设置
|    | sample.centospub.com   |          |
|    | localhost        |          |
+------+--------------------------------+--------------------------+
4 rows in set (0.01 sec)
 
mysql> exit  ← 退出MySQL服务器
Bye
 
然后,测试一下root密码有没有生效。
 
[root@sample ~]# mysql -u root  ← 通过空密码用root登录
 
ERROR 1045 (28000): Access denied for user  (using password: NO)  ← 出现此错误信息说明密码设置成功
 
[root@localhost ~]# mysql -u root -h sample.centospub.com  ← 通过空密码用root登录
 
ERROR 1045 (28000): Access denied for user   (using password: NO)  ← 出现此错误信息说明密码设置成功
 
[root@sample ~]#mysql -u root -p  ← 通过密码用root登录
Enter password:  ← 在这里输入密码
 
Welcome to the MySQL monitor. Commands end with ; or \g.  ← 确认用密码能够成功登录
Your MySQL connection id is 5 to server version: 4.1.20
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
 
mysql> exit
Bye
 
[root@sample ~]# mysql -u root -h sample.centospub.com -p  ← 通过密码用root登录
Enter password:  ← 在这里输入密码
 
Welcome to the MySQL monitor. Commands end with ; or \g.  ← 确认用密码能够成功登录
Your MySQL connection id is 6 to server version: 4.1.20
 
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
 
mysql> exit  ← 退出MySQL服务器
Bye
 
[2] 删除匿名用户
 
在MySQL刚刚被安装后,存在用户名、密码为空的用户。这使得数据库服务器有无需密码被登录的可能性。为消除隐患,将匿名用户删除。
 
[root@sample ~]# mysql -u root -p  ← 通过密码用root登录
Enter password:  ← 在这里输入密码
 
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7 to server version: 4.1.20
 
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
 
mysql> select user,host from mysql.user;  ← 查看用户信息
+------+----------------------------+
| user | host         |
+------+----------------------------+
|   | localhost       |
| root | localhost       |
|   | sample.centospub.com |
| root | sample.centospub.com  |
+------+----------------------------+
4 rows in set (0.02 sec)
 
mysql> delete from mysql.user where user='';  ← 删除匿名用户
Query OK, 2 rows affected (0.17 sec)
 
mysql> select user,host from mysql.user;  ← 查看用户信息
+------+----------------------------+
| user | host         |
+------+----------------------------+
| root | localhost      |
| root | sample.centospub.com |
+------+----------------------------+
2 rows in set (0.00 sec)
 
mysql> exit  ← 退出MySQL服务器

走完上面流程,mysql基本上安装完成 

[3] 配置mysql,让可以远程访问
第一步:用帐号登录mysql
mysql -u root

第二步:改变用户数据库
use mysql

并执行下面
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'MyPassword' WITH GRANT OPTION;
在mysql控制台执行命令中的 'root'@'%' 可以这样理解: root是用户名,%是主机名或IP地址,这里的%代表任意主机或IP地址,你也可替换成任意其它用户名或指定唯一的IP地址;
'MyPassword'是给授权用户指定的登录数据库的密码;
另外需要说明一点的是我这里的都是授权所有权限,可以指定部分权限,
GRANT具体操作详情见:http://dev.mysql.com/doc/refman/5.1/en/grant.html 

第三步:修改密码,记得密码要用password()函数进行加密,一定不要忘记!!!
mysql> update user set password=password('root') where user='root';
Query OK, 1 row affected (0.04 sec)
Rows matched: 1  Changed: 1  Warnings: 0

第四步:刷新权限表
mysql> flush previleges;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘previleges’ at line 1
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
 
第五步:退出mysql
mysql> quit
Bye

第六步:对mysql进行重启
[root@CentOs5 ~]# service mysqld restart;
STOPPING server from pid file /var/run/mysqld/mysqld.pid
100421 13:44:03  mysqld ended
Stopping MySQL:                                            [  OK  ]
Starting MySQL:                                            [  OK  ]
[1]+  Done                    mysqld_safe –skip-grant-tables

你可能感兴趣的:(linux)