ArchLinux搭建后台--MySQL安装与内网映射

2018-02-03 10:23:57来源:https://www.jianshu.com/p/deec84f920aa作者:流浪远方YP人点击

分享

序言
最近需要自己搭一下后台,决定用Tomcat + MySQL来搭建,需要在ArchLinux上安装一下MySQL;虽然很耿直的去找了Wiki,但是无奈水平有限,出现了各种Bug;索性直接从官网上下载MySQL的安装包,自己配置;这里记录一下过程
ArchLinux安装MySQL
一. 安装

从官网下载对应版本的MySQL安装包;如下图;下载第一个就行了



1.png



将下载的好的压缩包解压到/usr/local/目录中,然后执行将该文件夹更名为mysql

建立和添加用户组和用户: 执行groupadd mysql(建立mysql用户组);然后useradd -r -g mysql -s /bin/false mysql(建立用户mysql);

进入mysql目录中(cd mysql);创建data目录(该data目录是以后我们的数据库的默认存储目录)

回到/usr/local/目录下(cd ..即可),更改mysql文件夹及其文件内容的所有者,即执行chown -R mysql:mysql mysql

进入mysql/bin/目录下(cd mysql/bin),执行./mysqld --initialize --user=mysql --basedir=/usr/local/mysql datadir=/usr/local/mysql/data;但是笔者在这一步的报错了,大意为:缺少libnuma.so.1库;去网上搜了一下,从ArchLinux的源中找不到libnuma,解决办法时安装numactl(yaourt -S numactl)

执行./mysql_ssl_rsa_setup;之后执行./mysqld_safe --user=mysql &(记住别忘了最后的&)(在这一步系统会为root用户生成一个默认的密码,记下该密码,下次第一次登陆的时候会用(但是实际情况是,忘了也不要紧,而且貌似也没有什么用:))

这时候在/usr/local/mysql/bin下应该可以使用mysql -u root -p来登录本地数据库了,但是会报错(见下图);网上搜了一下,说这是应为Arch现在是6版的ncurses,5版的在AUR里,名叫ncurses5-compat-libs,直接安装即可:yaourt -S ncurses5-compat-libs




2.png

现在可以使用mysql -u root -p来登录了,会要求输入密码,即上一次系统自动生成的那个密码,不过忘了或者不可用也不要紧,可以参考博客来解决;如果该博客中的方法都不可行,那么可以在
usr/local/mysql/bin下执行mysqld_safe --user=mysql --skip-grant-tables --skip-networking &,即启动安全模式,之后可以免密码登录(即执行mysql -u root -p要求输入密码的时候直接回车即可进入);进入后,执行UPDATE mysql.user SET authentication_string=PASSWORD(‘your_password’) where User=’root’;(记住替换your_password);然后执行flush privileges;使更改生效,quit退出即可(如下图);现在你应该可以在bin/目录下使用mysql



3.png
二. 全局配置

这个时候mysql只能在安装目录usr/local/mysql/bin下使用;这是因为其他地方直接使用mysql命令的时候,默认是先从/usr/bin下去找的,在/usr/bin/下没有该命令,所以不能用,可以执行ln -s /usr/local/mysql/bin/mysql /usr/bin,这样在其他地方也能使用mysql命令了;为了以后方便,可以再执行ln -s /usr/local/mysql/bin/mysqld /usr/bin(这样在其他地方启动MySQL服务就可以用systemctl start mysqld了,同样的停止MySQL服务可以使用systemctl stop mysqld)

当然如果不想每次开机的时候都输入命令systemctl start mysqld来开启MySQL的话,也可以将MySQL设置为开启启动,执行systemctl enable mysql(同样可以通过:systemctl disable mysql来取消开机启动MySQL服务)

三. 关于Linux上的内网穿透

关于Tomcat上配置数据库比较简单,网上也比较多教程,这里不在赘述;这里主要讲一下Linux上的内网穿透,方便本机实时调试;笔者使用的是ngrok

首先下载ngrok客户端,解压到任意目录即可,然后在ngrok官网上注册一个账号,得到你的Authtoken(见下图),然后在放置ngrok客户端(即上面下载的那个)的地方执行: ./ngrok authtoken=your_authtoken,该命令只需要执行一次即可



4.png

之后开启本地Tomcat服务,默认使用的8080端口,执行./ngrok http 8080(8080端口号可以换成自定义的);如下图;ngrok将本地8080端口服务映射为http://ba00d5db.ngrok.io访问,现在就可以使用该网址在外网访问本地服务了



5.png

但是免费的ngrok有一个缺陷就是,映射的域名时随机生成的,而不支持自定义,但是对于开发测试阶段,笔者认为已经足够

参考链接

ArchLinux安装MySQL
ngrok内网穿透
ngro使用





微信扫一扫

第七城市微信公众平台