首页 > 技术文章 > 部署解压版mysql

bgyb 2021-05-27 22:27 原文

1、检查系统是否安装过mysql 

//检查系统中有无安装过mysql
rpm -qa|grep mysql

//查询所有mysql 对应的文件夹,全部删除
whereis mysql
find / -name mysql

2、创建mysql用户

#创建mysql 用户组和用户
groupadd mysql

useradd -r -g mysql mysql

3、下载安装,从官网安装下载,我下载的位置在/usr/local/

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz

4、解压安装mysql

注:必须安装在/usr/local/下
tar -zxvf mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz        //解压MySQL包
mv mysql-5.7.31-linux-glibc2.12-x86_64 mysql        //重命名

 

5、更改mysql 目录下所有文件夹所属的用户组和用户,以及权限

chown -R mysql:mysql /usr/local/mysql        //更改mysql 目录下所有文件夹所属的用户组和用户
chmod -R 755 /usr/local/mysql                //更改mysql权限

 

6、进入mysql/bin/目录,编译安装并初始化mysql,务必记住数据库管理员临时密码

注:记住临时密码!!!

 

//解决参数化mysql服务错误问题
yum -y install numactl                //添加numactl依赖库

//解决libaio.so.1:No such file or directory缺包问题
yum install libaio*

./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

 

 

7、编写配置文件 my.cnf ,并添加配置

 

//配置文件 my.cnf ,并添加配置
vi /etc/my.cnf                

//文件内容
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character_set_server=utf8
datadir=/usr/local/mysql/data
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=400
innodb_file_per_table=1
#表名大小写不明感,敏感为
lower_case_table_names=1

8、启动mysql 服务器

//查询服务
ps -ef|grep mysql
ps -ef|grep mysqld
//启动mysql 服务器
/usr/local/mysql/support-files/mysql.server start        

9、添加软连接,并重启mysql 服务

//添加软连接
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

//解决执行service命令错误问题
yum list | grep initscripts    //查询initscripts依赖版本
yum install initscripts -y    //安装initscripts依赖

//重启mysql服务
service mysql restart        

 

10、登录mysql ,密码就是初始化时生成的临时密码

//解决mysql登录错误问题
yum install libncurses*

mysql -u root -p        //登入mysql,输入临时密码

 

11、修改密码,因为生成的初始化密码难记

set password for root@localhost = password('root');        //修改密码,注意:分号结尾

 

12、开放远程连接

use mysql;
update user set user.Host='%' where user.User='root';
flush privileges;

13、设置开机自启

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld    //将服务文件拷贝到init.d下,并重命名为mysql
chmod +x /etc/init.d/mysqld        //赋予可执行权限
chkconfig --add mysqld        //添加服务
chkconfig --list            //显示服务列表

 mysql5.7数据库乱码问题

解决相关问题:

1.初始密码验证失败

vim /etc/my.cnf #修改配置

skip-grant-tables  #末尾添加,跳过密码验证

service restart mysql #重启mysql

进入到终端当中,敲入 mysql -u root -p命令然后回车,当需要输入密码时,直接按enter键,便可以不用密码登录到数据库当中

2.修改MySQL数据库配置文件无密码登录后,修改密码报错:

ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

flush privileges;  #刷新缓存

set password for root@localhost=password('你的密码'); #修改密码

编辑my.cnf,去掉刚才添加的内容,然后重启MySQL。大功告成!

 

参考链接参考链接

推荐阅读