系统环境:虚拟机Redhat7.5
mysql版本:MySQL5.7.33
登录官网https://www.mysql.com/cn/downloads/下载压缩包mysql-5.7.33-el7-x86_64.tar.gz
检查环境是否已经安装MySQL
rpm -qa|grep mysql
若有则使用命令将其删除
rpm -e mysql–卸载
rpm -e --nodeps mysql–卸载并删除其他依赖文件
查找MySQL相关残留目录
find / -name mysql 或者 whereis mysql
若有则用rm删除
删除mysql用户及组信息
创建用户及组信息
groupadd -g 311 mysql
useradd -u 311 mysql
创建mysql安装目录
mkdir -p /appdata/local/mysql
创建数据仓库目录
mkdir -p /appdata/local/mysql/data
为mysql使用目录授权
cd /appdata/local/
chown -R mysql:mysql mysql
将mysql服务文件添加到系统服务中
cp /appdata/local/mysql/mysql5.7/support-file/mysql.server /etc/init.d/mysql
将下载的压缩包上传到安装目录上解压缩
tar -zxvf mysql-5.7.33-el7-x86_64.tar.gz
对解压缩文件进行改名
mv mysql-5.7.33-el7-x86_64.tar.gz mysql5.7
修改mysql的配置信息
vi /etc/init.d/mysql
dasedir=/appdata/local/mysql/mysql5.7
datadir=/appdata/local/mysql/data
vi /etc/my.cnf
[mysqld]
explicit_defaults_for_timestamp=true
sql_mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
basedir=/appdata/local/mysql/mysql5.7
datadir=/appdata/local/mysql/data
port=3306
lower_case_table_names=1
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
在安装目录下行初始化命令
/appdata/local/mysql/mysql5.7/bin/mysqld --initialize --user=mysql --basedir=/appdata/local/mysql/mysql5.7 --datadir=/appdata/local/mysql/data
初始化会对以上修改的配置文件进行校验,若配置文件没问题会自动随机的生成一个root密码,此密码是稍后使用root登录mysql的密码,留存
我在这边遇到了个问题
第一次由于配置文件错误导致初始化失败,修改配置文件后发现
initialize specified but the data directory has files in it. Aborting
此问题是由于mysql数据库已经进行了初始化,在初始化的时候会自动创建root用户,这时候就需要在数据库的目录下的datadir目录下将data目录重命名,在新建一个data就可以了,此处要注意创建文件的用户和组要修改,之后再进行初始化就可以了
然后是配置mysql的datadir
cd /appdata/local/mysql/mysql5.7
bin/mysql_ssl_setup --datadir=/appdata/local/mysql/data此处必须无错误
修改登陆权限
bin/mysql_safe --user=mysql
登录数据库修改root密码
bin/mysql -u root -p
输入随机密码登录(之前留存的,现在用到了)
但是在这遇到了一个问题
ERROR:Can 't connect to local MySQL server through socket '/tmp/mysql.sock ’
意思是找不到/tmp/mysql.sock文件了,连接localhost通常通过一个Unix域套接字文件进行,一般是/tmp/mysql.sock。如果套接字文件被删除了,本地客户就不能连接。
运行命令找一下
find / -name mysql.sock
这条命令,并且能查到结果的话,只需将查到的结果做一个软连接到/tmp目录下即可解决
登录MySQL数据库后执行修改密码命令
set password=password(‘123456’);
flush privileges;
注意数据库中语句结束的分号
授权访问权限
GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;
flush privileges;
GRANT:赋权命令
ALL PRIVILEGES:当前用户的所有权限
ON:介词
.:当前用户对所有数据库和表的相应操作权限
TO:介词
‘root’@’%’:权限赋给root用户,所有ip都能连接
IDENTIFIED BY ‘123456’:连接时输入密码,密码为123456
WITH GRANT OPTION:允许级联赋权
vi /etc/profile
增加
export PATH=/appdata/local/mysql/mysql5.7/bin/$PATH
source /etc/profile
授权启动项
chmod +x /etc/init.d/mysql
加入开机启动
chkconfig --add mysql
开始启动mysql服务
service mysql restart
现在可以直接用root用户登录数据库了
mysql -u root -p
输入密码登录
最后遇到一个问题:mysql: 未找到命令
这是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,报错
我们需要做的就是映射一个链接到/usr/bin目录下,相当于将mysql命令的完整路径建立一个链接文件
ln -s /appdata/local/mysql/mysql5.7/bin/mysql /usr/bin
至此安装结束,现在就可以启动正常使用啦