Linux游戏服务器之旅2_预装GCC mysql环境

作为游戏服务器,编译是肯定需要的,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的解决办法

2014-07-17 07:46:37 CSDN- ojpojp- 点击数:2017

这个问题是由于缺少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
有的话,我们就通过 rpm -e 命令 或者 rpm -e --nodeps(强制卸载)命令来卸载掉

2 我是通过yum的方式来进行mysql的数据库安装,首先我们可以输入 yum list | grep mysql 命令来查看yum上提供的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常用导入数据的命令:
      my sql数据库导入导出:
       mysqldump -u 用户名 -p 数据库名 > 数据库名.sql
      如:
   mysqldump -u root   -p         testdb  > testdb.sql (不包括存储过程和函数)
   mysqldump -u root   -p  -R   testdb  > testdb.sql (**包括存储过程和函数**)
 
     MySQL source命令向数据库中导入数据:
     mysql>use testdb;
    mysql>set names  utf8;
     mysql>source /tmp/bdc.sql;


开启计划事件

mysql> set global event_scheduler =1;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值