部署数据库mysql5.7.35版本详细步骤
事先要把mysql5.7.35的版本下载到家目录下。
再移动重命名一下:
mv mysql-5.7.29-el7-x86_64 /usr/local/mysql
创建MySQL用户组,创建数据目录并授予权限:
groupadd mysql useradd -r -g mysql mysql mkdir -p /data/mysql chown mysql:mysql -R /data/mysql
配置my.cnf:
vi /etc/my.cnf
增加如下内容,并用#屏蔽或直接删除原有的datadir、socket、log-error、pid-file配置项:
[mysqld] bind-address=0.0.0.0 port=3306 user=mysql 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=utf8mb4 symbolic-links=0 explicit_defaults_for_timestamp=true
退出并保存文件,然后初始化数据库:(如果失败、报错 可执行这条命令解决:yum -y install libaio)
cd /usr/local/mysql/bin ./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize cat /data/mysql/mysql.err
启动数据库并用root登录数据库,密码是下图红框中的随机字符,可以直接复制:
备份启动脚本:
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
启动服务:
service mysql start
ps -ef | grep mysql
在/usr/local/mysql/bin目录下运行
./mysql -u root –p (密码填写刚刚复制的初始密码)
如果登录失败,参照如下解决:
先在my.cnf文件里面新增一行内容如下
skip-grant-tables 保存并退出后重启mysql服务 /etc/init.d/mysql restart 重启完成后 cd /usr/local/mysql/bin ./mysql -u root –p 当需要输入密码时直接按enter键即可不用密码登录到MySQL命令行
在MySQL命令行输入如下命令修改密码为 123456(实际生产环境要设置尽可能复杂)
set password = password('123456'); alter user 'root'@'localhost' password expire never; flush privileges; exit
退出后使用新密码尝试一下能否登录。
如果前面因为无法登录而在my.cnf文件中添加了“skip-grant-tables”的话,退出MySQL命令行后需要去my.cnf文件中删除或屏蔽这行内容,再重启数据库,然后再尝试一下使用新的密码能不能登录。
赋予远程连接也能使用root账户登录数据库的权限:
use mysql; update user set host = '%' where user = 'root'; flush privileges; exit
开放服务器的3306端口:
firewall-cmd --query-port=3306/tcp firewall-cmd --get-active-zones firewall-cmd --zone=public --add-port=3306/tcp --permanent firewall-cmd --reload firewall-cmd --query-port=3306/tcp
为了使在其他目录下也能进入MySQL命令行,可以创建一个软链接:
ln -s /usr/local/mysql/bin/mysql /usr/bin
至此,mysql5.7.35版本数据库已经安装完成,且可以远程链接。