序言
- 最近需要自己搭一下后台,决定用
Tomcat + MySQL
来搭建,需要在ArchLinux
上安装一下MySQL
;虽然很耿直的去找了Wiki
,但是无奈水平有限,出现了各种Bug
;索性直接从官网上下载MySQL
的安装包,自己配置;这里记录一下过程
ArchLinux安装MySQL
一. 安装
- 从官网下载对应版本的
MySQL
安装包;如下图;下载第一个就行了
- 从官网下载对应版本的
- 将下载的好的压缩包解压到
/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
- 这时候在
- 现在可以使用
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
了
- 现在可以使用
二. 全局配置
- 这个时候
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
,该命令只需要执行一次即可
- 首先下载ngrok客户端,解压到任意目录即可,然后在ngrok官网上注册一个账号,得到你的
- 之后开启本地
Tomcat
服务,默认使用的8080
端口,执行./ngrok http 8080
(8080
端口号可以换成自定义的);如下图;ngrok
将本地8080
端口服务映射为http://ba00d5db.ngrok.io
访问,现在就可以使用该网址在外网访问本地服务了
- 之后开启本地
- 但是免费的
ngrok
有一个缺陷就是,映射的域名时随机生成的,而不支持自定义,但是对于开发测试阶段,笔者认为已经足够
- 但是免费的