MySQL linux下的安装
下载包
1
https://repo.huaweicloud.com/mysql/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
解压
1
2
3
4tar -xvf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
移动到local/mysql目录下
sudo mv mysql-8.0.20-linux-glibc2.12-x86_64 /usr/local/mysql
创建 data 目录
1
mkdir data
创建 MySQL 用户 并升级权限
1
2
3useradd mysql
chown -R mysql:mysql /usr/local/mysql
chmod -R 755 /usr/local/mysql初始化
1
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
注意上面的红框是个初始的登录密码。
启动并修改密码
1
2cd support-files
./mysql.server start连接修改密码
在连接 MySQL 的时候出现依赖错误。
1
./mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
这里是少了一个依赖导致的,可以使用 ldd mysql 来查看 MySQL 对应的依赖:
从上图中可以看到,其中
libtinfog.so.5
依赖没有。这个文件一般在
/etc/lib64/
,如果没有需要重现下载,或者拷贝一个。
我本地是有的 6.0 ,直接创建一个同步链接就可以了:
1
sudo ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5
开始连接
1
./mysql -uroot -p
修改密码和允许远程连接
1
2
3
4
5
6# 修改密码
mysql>ALTER USER USER() IDENTIFIED BY 'yourpass';
mysql>flush privileges
mysql>use mysql;
msyql>update user set user.Host='%' where user.User='root';
mysql>flush privileges;修改完还是无法连接
测试是否是防火墙拦截了,先停止防火墙试试
1
2
3
4
5火墙的状态
firewall-cmd --state
running
systemctl stop firewalld停止火墙后能够正常连接,说明是 MySQL 端口没有在防火墙中信任
1
2firewall-cmd --add-port=3306/tcp --permanent 开放某一个端口号
systemctl restart firewalld 启动防火墙