Manjaro 安装 MySQL 提示 loading libicuuc.so.65错误

4461

安装Mysql

sudo pacman -S mysql

初始化Mysql

sudo mysqld --initialize --user=mysql --basedir=/usr --datadir=/var/lib/mysql

到了这一步报错了:

mysqld: error while loading shared libraries: libicuuc.so.65

提示这一错误的原因是Manjaro系统中自带的libicu版本是64.2,而Mysql默认安装的是8版本需要libicuuc65版本。这时候去github下载并编译安装进系统,并软链接到/usr/lib/目录下即可

安装libicuuc

$ wget https://github.com/unicode-org/icu/releases/download/release-65-rc/icu4c-65rc-src.tgz
$ tar -zxvf icu4c-65rc-src.tgz
$ cd icu/source
$ ./configure
$ make
$ sudo make install

创建软连接

## icu4c-65rc的默认安装位置为/usr/local/lib
$ sudo ln -s /usr/local/lib/libicuuc.so.65 /usr/lib/libicuuc.so.65
$ sudo ln -s /usr/local/lib/libicui18n.so.65 /usr/lib/libicui18n.so.65
$ sudo ln -s /usr/local/lib/libicudata.so.65 /usr/lib/libicudata.so.65

之后再执行

sudo mysqld --initialize --user=mysql --basedir=/usr --datadir=/var/lib/mysql

看到下面的输出就表示初始化完成了

[☁ source]$ sudo mysqld --initialize --user=mysql --basedir=/usr --datadir=/var/lib/mysql
2019-11-24T12:40:47.667364Z 0 [Warning] [MY-010915] [Server] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
2019-11-24T12:40:47.667394Z 0 [System] [MY-013169] [Server] /usr/bin/mysqld (mysqld 8.0.18) initializing of server in progress as process 23975
2019-11-24T12:40:58.872897Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: er.aavg?dh6kZ

最后的er.aavg?dh6kZ是root用户的临时密码

配置

# 允许Mysql开机启动
sudo systemctl enable mysqld.service
# 启动Mysql
sudo systemctl start mysqld.service
sudo systemctl status mysqld.service

启动成功后,继续往下执行,如果启动失败,看status的日志,可能是数据目录权限不够,分配权限,或者可能报数据目录不是空的,修改/etc/mysql/my.cnf中的datadir为一个新的空目录。

$ mysql_secure_installation

此时就可以根据提示操作了,基本就算安装成功了。