archlinux使用操作拾遗
这周末打开了未经常使用的archlinux,使用过程中遇到了一些问题,进行了解决,在此做个记录。
archlinux无线联网问题
我安装的archinux是命令行版本,只能无线联网。
检测网卡的PCI-ID
lspci -vnn | grep 14e4:
获取驱动
驱动 | 描述 |
---|---|
brcmsmac/brcmfmac | 开源内核驱动 |
b43 | 逆向工程内核驱动 |
broadcom-wl | 专有的 Broadcom STA 驱动 |
b43/b43legacy的运行都需要安装闭源固件, 请从AUR安装b43-firmware, b43-firmware-classic或者 b43-firmware-legacy。
lsmod |grep b43
发现b43驱动已经安装
systemctl status NetworkManager
发现NetworkManager
已经安装(pacman
安装包为networkmanager
)
nmcli dev
发现无线网尚未连接。使用如下命令成功连接wifi:
nmcli dev wifi connect <SSID> password <password>
archlinux 软件全部升级签名问题
使用sudo pacman -Syu
遇到了 invalid or corrupted package ... unknown trust
的问题,应该是签名验证不通过,使用如下方法解决了:
sudo pacman-key --init
sudo vim /etc/pacman.conf #设置SigLevel = Optional TrustAll
sudo vim /etc/pacman.d/gnupg/gpg.conf #设置keyserver hkp://pgp.mit.edu
sudo pacman -Syu
archlinux 防火墙配置问题
archlinux的iptable使用systemctl启动时需要先创建iptables.rules
文件
sudo touch /etc/iptables/iptables.rules
sudo systemctl start iptables
使用systemctl
启动iptables
或者sudo iptables -L
时遇到问题:
can't initialize iptables table `filter': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
使用如下命令:
modprobe ip_tables
得到如下错误:
FATAL: Module ip_tables not found
最后发现/boot/
下config-*
文件表示的内核版本与uname -r
的版本不一致,原来是 sudo pacman -Syu
升级了内核,系统没有重启。重启系统后问题解决。
mariaDB初始化与远程访问配置问题
archlinux下安装了mariaDB,需要执行初始化才能正常启动服务:
sudo pacman -S mariadb
sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
sudo systemctl start mariadb
mysqladmin -u root password '12345678'
允许远程访问,需要首先确保防火墙配置正常,my.cnf
的bind-address
配置不为localhost
,没有配置skip-networking
; 之后配置权限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY '123456' WITH GRANT OPTION;
flush privileges;
go语言访问mariaDB日期格式DATETIME映射
go语言连接mariaDB时如果没有配置parseTime=true
,scan到的日期数据为[]int8格式,使用string类型接收时为日期的"2006-01-02 15:04:05"格式化字符串(可以使用sql.NullString接收处理空值)。如果配置了parseTime=true
,scan
时可以直接使用time.Time
,但是时间为空时会抛出异常。如果使用string
类型接收,则字符串格式为time.RFC3339
(2006-01-02T15:04:05Z07:00
)