目录
安装步骤
下载
上传
解压
重命名解压包
创建mysql用户组和用户
创建数据目录并赋予权限
修改配置文件
初始化数据库
查看root用户默认密码
启动mysql
添加系统服务、配置开机自启 - init.d
登录mysql
修改root初始用户密码
添加系统服务、配置开机自启 - systemctl
修改密码
补充
Navicat测试连接
安装步骤
下载
官网下载你先要的mysql版本,官网下载地址
上传
上传到想要安装的目录,我上传到了 /usr/local 目录
解压
cd /usr/local
使用如下命令解压:
tar -zxvf mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz
重命名解压包
将解压包重命名为mysql:
mv mysql-5.7.34-linux-glibc2.12-x86_64 mysql
创建mysql用户组和用户
创建用户组:
groupadd mysql
创建用户:
useradd -r -g mysql mysql
以上两个mysql的含义分别为:mysql[用户组] mysql[用户名],更多参数参考 Linux —— useradd -g mysql mysql解析及useradd详解 博客
创建数据目录并赋予权限
创建目录:
mkdir -p /data/mysql
目录赋权:
chown mysql:mysql -R /data/mysql
chown mysql:mysql -R /use/local/mysql
通常都会将数据存放目录外置到别的目录,这样子升级mysql不会影响历历史数据。
修改配置文件
vim /etc/my.cnf
把默认的内容删掉,改为下面的内容即可,当然你也可以按照自己的需求定制。
[mysqld]
bind-address=0.0.0.0
port=3306
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8
symbolic-links=0
[client]
default-character-set=utf8
socket=/tmp/mysql.sock
[mysql]
default-character-set=utf8
初始化数据库
初始化数据库前先安装下这个东东
yum -y install libaio
然后进入bin目录:
cd /usr/local/mysql/bin/
初始化:
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
查看root用户默认密码
cat /data/mysql/mysql.err
默认随机密码如上会打印到控制台。
启动mysql
/usr/local/mysql/support-files/mysql.server start
添加系统服务、配置开机自启 - init.d
上面启动服务要先进入 support-files 目录,再执行mysql.server start 进行启动,我们执行如下指令后,可以将mysql添加到系统服务,我们在任意目录都可以启停mysql服务。
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
然后,授予执行权限:
chmod +x /etc/init.d/mysql
添加服务开机自启:
chkconfig --add mysql
我们使用如下命令查看是否已添加服务自启动:
至此我们已经完成了mysql的安装及配置开机自启动。
登录mysql
mysql -u root -p
执行登录我们发现,登录不了,提示我们:-bash: mysql: command not found
我们执行如下指令添加软连即可:
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
密码为初始化的时候生成的随机密码串。
登录成功后,如下:
修改root初始用户密码
SET PASSWORD = PASSWORD('123456');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;
注意我们在进行数据库操作前要先修改下初始密码,否则会提示:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
添加系统服务、配置开机自启 - systemctl
首先,添加系统服务配置:
cat > /usr/lib/systemd/system/mysqld.service <<EOF
[Unit]
Description=mysql
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/usr/local/mysql/support-files/mysql.server start
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
然后指定开机自启动:
systemctl enable mysqld
修改密码
先登录到mysql:
mysql -uroot -p
输入密码登录后,切换数据库:
use mysql
然后,使用如下两种方式都可以修改密码。
方式一:
set password for 'root'@'%'=password('111111');
方式二:
update user set authentication_string=password('111111') where user='root' and host='localhost';
注意上面方式一中'root'@'%' root和% 和 方式二where条件中的user和host根据实际情况来,可以通过如下命令查看:
select Host,User from user;
补充
上面我们为了在任意目录执行 mysql -uroot -p 登录,我们添加了软连,当然,除了添加软你也可以配置环境变量,步骤如下:
一、编辑 profile 文件:
vim /etc/profile
二、profile文件末尾添加如下代码:
export PATH=$PATH:/usr/local/mysql/bin
/usr/local/mysql/bin 为mysql的安装目录,配置完成后别忘了执行 source profile 使配置生效。
三、使配置生效
source profile
Navicat测试连接
如果连不上数据库可能原因:
1.阿里云安全组中开放3306端口。
2.如果是在虚拟机中装的关闭防火墙。
3.root用户默认只能够本机访问,开放下对所有ip的访问限制。
关闭防火墙命令:
systemctl stop firewalld
开放所有ip的访问限制:
use mysql #访问mysql库
update user set host = '%' where user = 'root'; #使root能再任何host访问
FLUSH PRIVILEGES;