文章目录
- 一 安装前准备
- 二、安装Mysql5.7
- 三、安装mysql8.0
- 1、将下载的mysql上传到指定的目录
- 2、解压
- 3、重命名
- 4、创建用户组及用户和密码
- 5、授权用户
- 7、编辑my.cnf文件
- 8、进入到bin目录下
- 9、初始化基础信息,最后一行后面会有个随机的初始密码保存下来一会登录要用(如果忘记了就删掉data重新初始化)
- 10、添加mysqld服务到系统
- 11、授权以及添加服务
- 12、启动mysql
- 13、将mysql添加到命令服务
- 14、登录mysql
- 15、输入刚刚初始化时生成的密码
- 16、更改root用户密码, 注意语句后的; 执行语句忘记写了 可以补个空的;回车也可以将语句执行
- 17、更改root连接权限
- 18、exit; 退出mysql,现在就可以通过连接工具登录root账户进行远程连接了
- 四、在安装过程中可能出现的错误
Mysql5.7.24以下版本安装教程。
一 安装前准备
1、检查是否已经安装过mysql,执行命令
[root@localhost /]# rpm -qa | grep mysql
从执行结果,可以看出我们已经安装了mysql-libs-5.1.73-5.el6_6.x86_64,执行删除命令
[root@localhost /]# rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64
再次执行查询命令,查看是否删除
rpm –qa其中–a选项是查询所有已经安装的软件包。-q是查询一个包是否安装
[root@localhost /]# rpm -qa | grep mysql
2、查询所有Mysql对应的文件夹
这里我们的
[root@localhost ~]# whereis mysql
mysql: /usr/bin/mysql /usr/lib64/mysql /usr/share/mysql
[root@localhost ~]# rm -rf /usr/bin/mysql /usr/lib64/mysql /usr/share/mysql
[root@localhost ~]# whereis mysql
mysql:[root@localhost ~]# find / -name mysql
/etc/rc.d/init.d/mysql
/etc/selinux/targeted/active/modules/100/mysql
/data/mysql
/data/mysql/mysql
删除相关目录或文件
[root@localhost ~]# rm -rf /usr/bin/mysql /usr/lib64/mysql /usr/share/mysql
验证是否删除完毕
[root@localhost /]# whereis mysql
[root@localhost /]# find / -name mysql
[root@localhost /]#
3、检查mysql用户组和用户是否存在,如果没有,则创建,我之前是用另一种方式装的mysql
所以我创建了用户组,和用户,现在我们把它删除。
mysql:[root@localhost ~]# cat /etc/group |grep mysql
mysql:x:1001:
[root@localhost ~]# cat /etc/passwd | grep mysql
mysql:x:997:1001::/home/mysql:/bin/bash
如何删除,vi/vim 进入对应的文件将对应的内容删除就可以了。
现在创建新的用户组和用户
[root@localhost /]# cat /etc/group | grep mysql
[root@localhost /]# cat /etc/passwd |grep mysql
[root@localhost soft]# groupadd mysql
[root@localhost soft]# useradd -r -g mysql mysql
[root@localhost /]#
4、从官网下载是用于Linux的Mysql安装包
下载命令:
[root@localhost /]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
这里你可以会遇到centos7默认没有wget命令,运行一下命令安装就可以了!
[root@localhost etc]# yum -y install wget
也可以直接到 mysql官网 选择对应版本进行下载。
二、安装Mysql5.7
1、安装包传输
我是直接去官网下载安装包,应为你之间远程拉去的话,可能会因为网络原因,一些不可控因素导致获取失败,只有又得重试,会浪费很多时间。
传输mysql 到centos7上
我使用的是Xftp传输工具,将mysql安装包传输到/usr/local/soft中,
2、安装包解压
传输完成以后,可以在文件加下看到有安装包,接下来解压。
解压后,重命名文件夹,我用的是移动重命名。
[root@localhost soft]# tar -zxvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
[root@localhost soft]# cd mysql
[root@localhost mysql]# ls
bin docs include lib LICENSE man README share support-files
3、修改权限和用户组
[root@localhost soft]# chmod -R 755 /usr/local/soft/mysql
4、修改配置文件
配置my.cnf
vim /etc/my.cnf
内容:
[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
我的配置文件
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data/mysql
socket=/tmp/mysql.sock
log-error=/usr/local/mysql/data/mysql/mysql.err
pid-file=/usr/local/mysql/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true
5、初始化数据库
进入mysql 的bin目录
cd /usr/local/mysql/bin/
初始化可能还需要安装依赖
yum install -y libaio
初始化
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/mysql --user=mysql --initialize
查看密码
cat /data/mysql/mysql.err
6、进入mysql目录下的 support-files启动服务
[root@localhost mysql]# cd support-files/
[root@localhost support-files]# ls
magic mysqld_multi.server mysql-log-rotate mysql.server
[root@localhost support-files]# ./mysql.server start
[root@localhost support-files]# ./mysql.server start
Starting MySQL.. SUCCESS!
这样代表服务启动成功!
7、使用mysql
进入msyql的bin目录中输入以下命令,密码前面已经讲解了如何获取。
[root@localhost bin]# ./mysql -u root -p
登录以后,修改密码,执行以下操作
SET PASSWORD = PASSWORD(‘123456’);
ALTER USER ‘root’@‘localhost’ PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;
8、修改内容,允许访问,远程连接
登录数据库,在执行以下操作
use mysql #访问mysql库
update user set host = ‘%’ where user = ‘root’; #使root能再任何host访问
FLUSH PRIVILEGES; #刷新
此时就可以进行远程连接了
9、软链接设置
如果不希望每次都到bin目录下使用mysql命令则执行以下命令
ln:它的功能是为某一个文件在另外一个位置建立一个同步的链接
ln -s 源文件 目标文件
ln -s /usr/local/mysql/bin/mysql /usr/bin
ln -s /usr/local/mysql/support-files/mysql.server /usr/bin
注意:按照以上顺去安装,基本不会有什么问题,因为我试了几遍,如果中途出去报错,可以参考一下错误去解决。、
10、开机自启动设置
1、将服务文件拷贝到init.d下,并重命名为mysqld
[root@localhost /]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
2、赋予可执行权限
[root@localhost /]# chmod +x /etc/init.d/mysqld
3、添加服务
[root@localhost /]# chkconfig --add mysqld
4、显示服务列表
[root@localhost /]# chkconfig --list
三、安装mysql8.0
1、将下载的mysql上传到指定的目录
/usr/local/java/
2、解压
xz -d mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
tar xvf mysql-8.0.20-linux-glibc2.12-x86_64.tar
3、重命名
mv mysql-8.0.20-linux-glibc2.12-x86_64 mysql8
4、创建用户组及用户和密码
groupadd mysql
useradd -g mysql mysql
5、授权用户
chown -R mysql.mysql /usr/local/mysql
7、编辑my.cnf文件
vim /etc/my.cnf
按 i 进入修改模式 然后将下面的文本复制进去
[mysqld]
user=root
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
port=3306
max_connections=200
max_connect_errors=10
character-set-server=utf8
default-storage-engine=INNODB
lower_case_table_names=1
group_concat_max_len=102400
[mysql]
default-character-set=utf8
[client]
port=3306
default-character-set=utf8
8、进入到bin目录下
cd bin
9、初始化基础信息,最后一行后面会有个随机的初始密码保存下来一会登录要用(如果忘记了就删掉data重新初始化)
./mysqld --initialize
10、添加mysqld服务到系统
先返回到mysql目录
cd …
cp -a ./support-files/mysql.server /etc/init.d/mysql
11、授权以及添加服务
chmod +x /etc/init.d/mysql
chkconfig --add mysql
12、启动mysql
service mysql start
13、将mysql添加到命令服务
ln -s /usr/local/mysql/bin/mysql /usr/bin
14、登录mysql
mysql -uroot -p
15、输入刚刚初始化时生成的密码
16、更改root用户密码, 注意语句后的; 执行语句忘记写了 可以补个空的;回车也可以将语句执行
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘你的密码’;
flush privileges;
17、更改root连接权限
update user set host=’%’ where user = ‘root’;
flush privileges;
18、exit; 退出mysql,现在就可以通过连接工具登录root账户进行远程连接了
四、在安装过程中可能出现的错误
1、设置密码问题
由于mysql5.7之后,mysql数据库中的mysql库中的user表没有了password字段, password字段改成了authentication_string ,安装一下设置就可以,然后在重新登录即可。
update user set password=password("*******") where user="*******"; #修改密码报错
update mysql.user set authentication_string=password('*******') where user='*******'; #修改密码成功
flush privileges; #立即生效
2、权限不足
Access denied for user ‘root’@‘localhost’ (using password: YES)
出现一下报错,可以在my.ini配置文件中添加一行,登录跳过密码验证。
先登录之后,然后在重新设置密码。
skip-grant-tables #在my.ini,[mysqld]下添加一行,使其登录时跳过权限检查
重新设置密码,删除my.ini中的跳过密码验证。
然后重启服务
SET PASSWORD = PASSWORD(‘123456’);
ALTER USER ‘root’@‘localhost’ PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;service mysql restart
3、远程连接不成功
1、网络原因。
2、防火墙设置问题
由于服务器没有对外开放mysql的默认端口3306导致
firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --reload
以下内容是我根据上面博主的内容进行的借鉴,补充了一些自己的内容,例如初始化,密码查看等都用了不同的操作。如有涉及违规内容,请及时联系。