作为游戏服务器,编译是肯定需要的,CentOS默认并没有安装GCC的编译环境,,所以首先得安装他,
yum -y install gcc
yum -y install gcc-c++
yum会自动查找软件的相关依赖包,自动下载安装,全过程轻松愉快。
64位编译32位还需要装32位环境
这样就可以安装gcc-c++了
yum -y install gcc-c++
不过因为系统是64位的,默认安装的gcc/g++都是用来编译64位代码的,对于那些使用32位库的程序来说,用此gcc/g++编译会出问题。
我遇到的就是缺少gun/stab.h 32位文件。
遇到这样的问题,只能手动安装32位的库文件。
这个文件在glibc里。
安装命令:
yum -y install glibc-devel.i686 glibc-devel
i686就是版本,386,486 也没什么。
再次编译源文件,还是报错,此时是连接错误。说是找不到libstdc++
只能再装,但是此时不可盲目的装,因为好多libstdc++,要安装自己需要的。
我缺少的是libstdc++.so.6.
可以用yum命令找出包含libstdc++.so.6的安装包
yum whatprovides libstdc++.so.6
我用此命令查找的时候,它给我指出了一个安装包:libstdc++-4.4.7-3.el6.i686
安装就一下,我的程序就以成功编译连接运行了。
yum -y install libstdc++-4.4.7-3.el6.i686
/usr/include/gnu/stubs.h:7:27: error: gnu/stubs-32.h:No such file or directory的解决办法
这个问题是由于缺少32位兼容包,解决办法:
ubuntu: sudo apt-get install libc6-dev-i386
CentOS:yum -y install glibc-devel.i686
安装调试工具 gdb: yum -y install gdb.*
接下来就装数据库 Linux系统数据库当然用,mysql 了 好处就不说了
为了能在windows下管理数据库 所以Navicat_for_MySQL_10.1.7_XiaZaiBa.exe是必不可少的
下载安装Navicat_for_MySQL_10.1.7_XiaZaiBa就不聊了
LInux下安装MYSQL
1.首先查看服务器是否已经安装了MYSQL
rpm -qa | grep mysql
[root@xiaoluo ~]# yum list | grep mysql
yum install -y mysql-server mysql mysql-devel 命令将mysql mysql-server mysql-devel都安装好(注意:安装mysql时我们并不是安装了mysql客户端就相当于安装好了mysql数据库了,我们还需要安装mysql-server服务端才行)
yum install -y mysql-server mysql mysql-devel (必须执行否则 找不到mysql.h)
[root@xiaoluo ~]# yum install -y mysql-server mysql mysql-deve
此时我们可以通过如下命令,查看刚安装好的mysql-server的版本
[root@xiaoluo ~]# rpm -qi mysql-server
3、mysql数据库的初始化及相关配置
我们在安装完mysql数据库以后,会发现会多出一个mysqld的服务,这个就是咱们的数据库服务,我们通过输入 service mysqld start 命令就可以启动我们的mysql服务。
注意:如果我们是第一次启动mysql服务,mysql服务器首先会进行初始化的配置,如:
[root@xiaoluo ~]# service mysqld start
我们在使用mysql数据库时,都得首先启动mysqld服务,我们可以 通过 chkconfig --list | grep mysqld 命令来查看mysql服务是不是开机自动启动,如:
[root@xiaoluo ~]# chkconfig --list | grep mysqld mysqld 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭
我们发现mysqld服务并没有开机自动启动,我们当然可以通过 chkconfig mysqld on 命令来将其设置成开机启动,这样就不用每次都去手动启动了
[root@xiaoluo ~]# chkconfig mysqld on [root@xiaoluo ~]# chkconfig --list | grep mysql mysqld 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
设置成开机启动的服务和SSHD类似
紧接着就是给mysql设置一个root密码
但是在此之前要做一件事就是解决 Xshell4乱码的问题
1.打开xshell终端服务,找到菜单--- 属性
2.打开属性,系统设置菜单之后。找到 “终端”编码设置,默认是 默认语言,选择UTF8设置即可
接着来i为mysql 设置root密码
mysqladmin -u root password 'root'[root@localhost ~]# mysqladmin -u root password 'new-password'
这样root密码就是new-password
此时我们就可以通过 mysql -u root -p 命令来登录我们的mysql数据库了
一、mysql登录错误
mysqladmin: connect to server at 'localhost' failed
error: 'Access denied for user 'root'@'localhost' (using password: YES)'
无法修改密码
用 service mysqld stop
mysqld_safe --skip-grant-tables &
输入 mysql -uroot -p 回车进入
>use mysql;
> update user set password=PASSWORD("newpass")where user="root";
更改密码为 newpassord
> flush privileges; 更新权限
> quit 退出
service mysqld restart
mysql -uroot -p新密码进入
mysql> show databases; //查看已有数据库
五、mysql数据库的主要配置文件
1./etc/my.cnf 这是mysql的主配置文件
我们可以查看一下这个文件的一些信息
[root@xiaoluo etc]# ls my.cnf
my.cnf [root@xiaoluo etc]# cat my.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
2./ver/lib/mysql mysql数据库的数据库文件存放位置
我们的mysql数据库的数据库文件通常是存放在了/ver/lib/mysql这个目录下
[root@xiaoluo ~]# cd /var/lib/mysql/
创建一个我们自己的数据库:
mysql> create database Mahjong;
3./var/log mysql数据库的日志输出存放位置
我们的mysql数据库的一些日志输出存放位置都是在/var/log这个目录下
[root@xiaoluo xiaoluo]# cd
[root@xiaoluo ~]# cd /var/log [root@xiaoluo log]# ls
其中mysqld.log 这个文件就是我们存放我们跟mysql数据库进行操作而产生的一些日志信息,通过查看该日志文件,我们可以从中获得很多信息
因为我们的mysql数据库是可以通过网络访问的,并不是一个单机版数据库,其中使用的协议是 tcp/ip 协议,我们都知道mysql数据库绑定的端口号是 3306 ,所以我们可以通过 netstat -anp 命令来查看一下,Linux系统是否在监听 3306 这个端口号:
结果如上所示,Linux系统监听的3306端口号就是我们的mysql数据库!!!!
这时候我们linux服务器上已经搭建好数据库啦
接下来就需要用Navicat_for_MySQL来远程链接操作数据库.
测试连接
这个错误是因为,我们防火墙的问题 关闭防火墙试一下
service iptables stop
出现这个问题是因为我们的root帐号只允许在本地使用 不允许用来远程连接
我们修改这个属性看好了
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
其中'123456'为该帐号的密码
执行完后,再
flush privileges;
刷新一下权限就可以了,不用重启
这时候就可以测试连接 -->连接成功但是我们是把防火墙给关了,这个肯定是不行的
我们需要让防火墙开启3306端口
修改防火墙配置
vim /etc/sysconfig/iptables#修改防火墙配置
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT//开放22端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT//开发3306端口
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
退出保存
重启防火墙
测试连接 成功!
接下来就把以前的数据库导出来 导入到我们新建的数据库中
开启计划事件
mysql> set global event_scheduler =1;