Linux安装MySQL
1、下载MySQL
MySQL官网:https://downloads.mysql.com/archives/community/。下载Linux版本的MySQL安装包,这里我选择的是64位、8.0.31版本,下载的压缩包名称:mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz。
2、Linux安装MySQL
1、将下载的压缩包,上传到Linux的指定目录并解压
tar -xf mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz
文件夹名称过长,文件夹重命名为mysql。
2、添加mysql用户及用户组
groupadd mysql && useradd -r -g mysql mysql
查看mysql用户及用户组是否添加成功,有显示mysql:mysql代表成功。
groups mysql
3、创建mysql的数据目录并赋予权限
mkdir -p /usr/local/develop/data/mysql
chown mysql:mysql -R /usr/local/develop/data/mysql
4、调整配置文件
vi /etc/my.cnf
如果没有就此配置文件,就新建配置配置文件my.cnf。配置文件调整如下:
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/develop/mysql
datadir=/usr/local/develop/data/mysql
socket=/var/lib/mysql/mysql.sock
character_set_server=utf8mb4
explicit_defaults_for_timestamp=true
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[mysqld_safe]
# log-error=/var/log/mariadb/mariadb.log
# pid-file=/var/run/mariadb/mariadb.pid
log-error=/usr/local/develop/data/mysql/mysql-err.log
pid-file=/usr/local/develop/data/mysql/mysql.pid
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
配置文件介绍如下:
5、初始化MySQL
进入到mysql解压目录的bin下
cd /usr/local/develop/mysql/bin
初始化mysql
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/develop/mysql --datadir=/usr/local/develop/data/mysql/ --user=mysql --initialize
执行初始化报错:error while loading shared libraries: libaio.so.1
原因:缺少libaio.so.1的依赖库,需进行安装,执行如下安装命令:
yum install -y libaio
出现如下提示表示安装完成。
再次执行mysql的初始化命令,出现如下提示代表初始化完成。
注意:在初始化完成后,会为root生成临时的登录密码 - 如上图的 ==> A temporary password is generated for root@localhost: jKd)C,hu?6i9, 密码为 jKd)C,hu?6i9,需要记住后面登录时需要用到。
6、mysql的启动与关闭
6.1、启动msyql
复制mysql的启动命令
cp /usr/local/develop/mysql/support-files/mysql.server /etc/init.d/mysql
启动mysql
service mysql start
执行出现如下错误:
调整配置文件,注释socket。
再次启动mysql,出现如下提示,表示启动成功。
6.2、关闭mysql
service mysql stop
关闭服务结果如下:
7、登录mysql
此处需要用到上面初始化MySQL生成的临时密码:jKd)C,hu?6i9。
MySQL服务已经启动,执行登录命令登录,发现无法找到mysql命令。因为Linux系统会在/usr/bin下面查找mysql命令,而当前的mysql命令在/usr/local/develop/mysql/bin目录下,所以执行mysql命令无法找到。
建立软连接
ln -s /usr/local/develop/mysql/bin/mysql /usr/bin
再次访问mysql数据库,出现如下界面表示已登录成功。
8、修改密码
用临时密码登录到mysql数据库,无法访问数据库databases,需要先修改密码。
执行如下命令修改密码:
alter user 'root'@'localhost' identified by 'root';
#刷新
FLUSH PRIVILEGES;
出现如下提示表示密码修改完成。
9、数据库工具连接
调整mysql数据库中的user表的外部访问规则:
show databases; # 选择使用mysql数据库 use mysql # root可以由任何host访问 update user set host = '%' where user = 'root'; # 刷新权限 FLUSH PRIVILEGES;
操作详情如下:
再次连接数据库:
10、忘记密码
如果忘记mysql的密码,需要开启免密登录
1、调整/etc/my.cnf配置文件
在【mysqld】下添加 skip-grant-tables,保存退出。
skip-grant-tables
2、重启mysql服务,使数据生效
service mysql restart
3、免密登录
mysql -u root -p
修改密码按照步骤8操作,密码修改完成后,记得去掉/etc/my.cnf配置文件中的。