Manjaro 安装 MySQL 提示 loading libicuuc.so.65错误
安装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
此时就可以根据提示操作了,基本就算安装成功了。