背景

某瑞这边采购了很多工控机,然后这边管事的人有一个故障测距的项目,考虑到我在公司这边米有可参与的项目,就让我去拎来一个家伙,把相关的软件环境配置安装一下,主要是mysql和一些Qt相关的环境,操作系统为CentOS 7.6

我当然是欣然接受😬😬😬(Embarrassed but not polite smile)。

网络配置

首先关闭防火墙和停用SELinux

因为在RedHat linux操作系统中默认开启了防火墙,SELinux也处于启动状态,一般状态为enforing。致使很多服务端口默认是关闭的。对新手不甚友好,关闭之。

# 关闭防火墙
systemctl disable firewalld.service
# 打开selinux配置文件
vim /etc/selinux/config

将文件中的SELINUX=设置 为 disabled ,然后重启。

当然这里有很多坑,展开来说是说不完的。因为毕竟自己是Linux菜鸟,且这个主机刚刚新鲜出炉,以至于刚开始网络环境都需要自己配置。记录一些比较重要的吧:

一:创建用户nyy

useradd -m nyy

二:为新建的用户设置密码,回车后输入新密码

passwd nyy

三:为新建的用户设置sudo权限

  • 切换至root,为sudo文件增加写权限,默认是读权限
chmod u+w /etc/sudoers
  • 打开文件vim /etc/suduers,在root ALL=(ALL) ALL这一行下面添加
nyy ALL=(ALL) ALL
  • 再次取消sudo文件的写权限
chmod u-w /etc/sudoers

之后配置yum的源:

修改CentOS默认yum源为mirrors.163.com

  1. 首先备份系统自带yum源配置文件
/etc/yum.repos.d/CentOS-Base.repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
  1. 进入yum源配置文件所在的文件夹
cd /etc/yum.repos.d/
  1. 下载163的yum源配置文件到上面那个文件夹内
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
  1. 运行yum makecache生成缓存
  2. yum -y update

然后用yum下载相关依赖安装包:

yum install -y mesa*
yum install -y gcc-c++*

结果报错:wget 无法解析主机地址 。

首先怀疑的是DNS的配置。因为之前有动过DNS,执行如下内容(8.8.8.8是谷歌提供的):

echo 'nameserver 8.8.8.8'>>/etc/resolv.conf

也可使用阿里巴巴提供的DNS域名解析:

nameserver 223.5.5.5
nameserver 223.6.6.6

但是改完后还是ping不了百度,报错未知的名称与服务。

ping自己的服务器地址显示网络不可达。

之后又修改网络配置。找到以太网卡配置文件度ifcfg-enp文件,前面的数字好像是随机生成问的。
使用root打开并编辑些文件,将onbootno改为答yes,意思为开启自动启用网络连接。然后重启网络 systemctl restart network,结果还是不行。

报错信息为:Failed to start LSB: Bring up/down networking.

之后按照这个错误网上冲浪并尝试了很多关于MAC地址的配置方法,依然失败。菜鸟的一早上就这么灰飞烟灭。

之后在吃饭的时候回忆了一下IP的来源。惊觉刚来这边报道的时候是通过分配的静态IP地址上的网,而不是DHCP的形式。之后重编辑/etc/sysconfig/network-scripts/,找到相应网卡信息的配置文件,输入静态IP以及相应的DNS、子网掩码后就成功了。顺带下载了之前的依赖。

不知道是哭还是笑😂😂😂,生活还得继续。

MySQL 8.0 安装

之后就是mysql的安装,由于redhat7/centos7版本的操作系统默认的数据库为mariadb 而不是以前的mysql,因此在安装mysql前要把mariadb相应的插件卸载,如下所示:

sudo yum -y remove mariadb-*

然后切换到root用户下MySQL的安装,这里没啥说的,就是下载还是比较慢。

安装完成后重启计算机reboot, 重启完成查看mysql服务状态。

service mysqld status

接着就是修改mysql root用户默认密码。

查询默认密码:

cat /var/log/mysqld.log | grep password

然后根据默认密码登录mysql –uroot –p 回车 输入初始密码:xxxxxx

修改root密码,密码规则为大于8位,字母大小写与数字的组合:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpasswd';

根据业务要求,还需要建立mysql的相关用户并指定IP访问权限。

mysql -uroot –pnewpasswd
mysql> CREATE USER 'xm'@'%' IDENTIFIED BY 'newpasswd';
mysql> CREATE USER 'xm'@'192.168.215.2' IDENTIFIED BY 'newspasswd';

%代表所有用户皆可访问,而后面那句表明192.168.215.2这个IP可以远程访问。根据需要配置权限即可。

然后就是初始表的建立:执行yyy目录sql下的createtable.sql语句:

mysql> source /home/yyy/sql/createtable.sql;

接着给用户或指定IP赋予对数据库的所有权限。

mysql> GRANT ALL PRIVILEGES ON *.* TO 'xm'@'%';
mysql> GRANT ALL PRIVILEGES ON dbname.* TO 'xm'@'%';
mysql> GRANT ALL PRIVILEGES ON dbname.* TO 'xm'@'192.168.215.2';
mysql> FLUSH PRIVILEGES;

更新之后可以查看权限:

mysql> show databases;
mysql> use mysql;
mysql> select host,user,authentication_string,plugin from user;
环境变量

在安装某个后台界面之后,需要在终端输入命令就能直接打开可运行文件,这就涉及到环境变量的修改。

跟着网上的教程来,首先打开bashrc文件:

vim /etc/bashrc

在结尾处添加(此处有雷区,不要模仿):

export RUNDIR=/home/yyy/zzz
export MysqlHost1=192.168.215.247     
export MysqlHost2=192.168.215.249
export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/lib64:$RUNDIR/lib
export PATH= $RUNDIR/bin:$RUNDIR/lib

赋权并执行:

cd /etc
chmod 777 bashrc
./bashrc

然后reboot重启,结果悲剧来了。陷入了登录死循环,即输入了正确的密码之后,电脑出现黑屏一闪,然后又重回登录界面。猜想可能就是之前环境变量export那里有问题,配置错误的环境变量,导致系统找不到正确的启动文件和命令路径。因此只能通过修改/etc/bashrc来解决。怎么进入终端呢?

在开机的过程中,按下ctrl+Alt+F1-7中的一个,每个人的电脑不同进入命令界面的方式也不同。

在这个命令界面下,我们很多的常用的命令都会用不了比如vim或vi、sudo等。为此只能通过访问绝对路径的方式来解决。

首先获得root权限,在输入/usr/bin/sudo -i便获得root权限。

然后重新修改环境变量配置,输入命令/usr/bin/vim /etc/bashrc,然后把之前配置的那些导致环境变量出现错误的那些删掉就bingo

最后怎么改才成功呢?

export PATH= $PATH:$RUNDIR/bin:$RUNDIR/lib

可以看到,在export PATH中需要把$PATH:变量给加进去。

PATH=$PATH:路径1:路径2:...:路径n的意思是可执行文件的路径包括原先设定的路径,即$PATH,也包括从“路径1”到“路径n”的所有路径。当用户输入一串字符并按回车后,shell会依次在这些路径里找对应的可执行文件并交给系统执行。这个$PATH非常重要,它表明原先设定的路径仍然有效,其中就包括系统启动所需要的配置文件和一些命令的配置文件等,注意不要漏掉。某些软件可能还有PATH以外类型的环境变量需要添加,但方法与此相同,并且也需要注意"$"

所以必要的shell/bash语言也需要掌握呀,学无止境。

重启后,查看环境变量路径:

echo $PATH

就可以看到之前添加的变量已经添加成功了。

好了,大概就这样,Linux系统下的环境与软件安装,以后慢慢学习。