大家好,又见面了,我是你们的朋友全栈君。
- 查看当前已安装服务
[root@localhost]# rpm -qa|grep -i mysql
MySQL-server-5.6.36-1.rhel5.x86_64
qt-mysql-4.8.5-13.el7.x86_64
akonadi-mysql-1.9.2-4.el7.x86_64
perl-DBD-MySQL-4.023-5.el7.x86_64
- 卸载mysql服务:
[root@localhost ]# yum remove mysql
[root@localhost ]# yum remove mysql-server
1、 安装包准备
通过XFTP远程传输到linux服务器上
mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
2、 检查环境是否有mysql
命令:
# rpm -qa | grep mysql
# cat /etc/group | grep mysql
如果有则删除
命令:
# find / -name mysql|xargs rm -rf
3、 先安装必备库
命令:
# yum search libaio
# yum install libaio
4、 检查mysql组和用户是否存在,如无创建
命令:
先删除系统已存在的mysql用户和组
vi /etc/passwd 找到mysql用户 删除
# groupadd mysql
# useradd -g mysql mysql
# passwd mysql
连续输入两次密码完成用户创建
移动文件mv +文件目录+文件 移动的目标目录+文件名
# mv /home/liunx/self/mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
/home/mysql/mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
上传软件包mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz,解压TAR包,更改所属的组和用户
命令:
# cd /home/mysql/
# tar -zxvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
# mv mysql-5.7.21-linux-glibc2.12-x86_64 /usr/local/mysql
# chown -R mysql:mysql /usr/local/mysql
# cd /usr/local/mysql/
5、 创建目录并授权
命令
# mkdir data mysql-files
# chmod 750 mysql-files
# chown -R mysql .
# chgrp -R mysql .
6、 初始化数据库
命令
# bin/mysqld --initialize --user=mysql
初始化数据库并生成临时密码 :koYyPqyL2y#t 需要记录下来
[注意]root@localhost生成临时密码,也就是root@localhost:后的字符串
7、 授予读写权限
命令:
# chown -R root .
# chown -R mysql data mysql-files
8、 添加到MySQL 启动脚本到系统服务
命令:
cp support-files/mysql.server /etc/init.d/mysql.server
9、 启动脚本
命令:
# service mysql.server start
可能会爆:
[root@localhost mysql]# service mysql.server start
Starting MySQL.2019-07-11T08:21:42.438137Z mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.
ERROR! The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid).
解决方法:
[root@localhost mysql]# mkdir /var/log/mariadb
[root@localhost mysql]# touch /var/log/mariadb/mariadb.log
[root@localhost mysql]# chown -R mysql:mysql /var/log/mariadb/
[root@localhost mysql]# service mysql.server start
Starting MySQL. SUCCESS!
启动时:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
解决:ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
建立软连接
然后用mysql -h localhost -u root -p
启动
10、 数据库已经启动,现在登陆使用,这里用到上面的临时密码
[root@localhost mysql]# mysql -uroot –p
Enter password:
ERROR 1862 (HY000): Your password has expired. To log in you must change it using a client that supports expired passwords.
出现问题:ERROR 1862
翻译:错误1862(HY000):你的密码已经过期。登录必须改变它使用一个客户端,支持过期的密码。
Mysql5.7版本不会自动生成my.cnf文件,可以从已完成机器上拷贝注意修改所属目录
拷贝完成后
service mysql.server stop
停止数据库
service mysql.server start
启动数据库
原因:这是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件。首先得知道mysql命令或mysqladmin命令的完整路径,比如mysql的路径是:/usr/local/mysql/bin/mysql,我们则可以这样执行命令:
ln -s /usr/local/mysql/bin/mysql /usr/bin
解决方法:
- 用忽略授权表的方法进入mysql
vi /etc/my.cnf
[mysqld]
skip-grant-tables
:wq! #保存退出
重启mysql 就可以进入数据库了
- 进入mysql,查看root用户的详细信息
SQL:
select * from mysql.user where user='root' \G
- 把password_expired 改成不过期
SQL:
use mysql
update user set password_expired='N' where user='root';
flush privileges;
quit
-
把 /etc/my.cnf 的 skip-grant-tables 这行注释掉
-
重启服务
命令
# service mysql.server restart
11、 重置密码
SQL:
use mysql;
ALTER USER 'root'@'localhost' identified by 'root';
或者
set password=password("root");
flush privileges;
exit;
12、 使用新密码重新登陆
SQL:
mysql -uroot –proot
13、 添加远程连接
SQL:
use mysql;
update user set host = '%' where user ='root';
flush privileges;
14、 关闭防火墙,然后使用远程工具连接
命令
# systemctl stop firewalld.service
15、 修改配置文件my.cnf
命令
vim /etc/my.cnf
添加下面数据
[mysql]
default-character-set=utf8
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
退出重启
service mysql.server restart
16、 设置环境变量profile
vim /etc/profile
MYSQL=/usr/local/mysql
PATH=$MYSQL/bin:$PATH
export MYSQL
# 保存后别忘记使生效
source /etc/profile
17、 添加开机启动chkconfig
命令:
chmod 755 /etc/init.d/mysql
chkconfig --add mysql
chkconfig --level 345 mysql on
遇到问题—-Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’
使用命令 # find / -name “mysql.sock”
然后使用命令
# ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/106552.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...