1、下载mysql源文件
2、将下载好的源文件通过工具上传到服务器上
3、安装前,我们可以检测系统是否自带安装 MySQL:
rpm -qa | grep mysql
如果有如下内容:mysql-libs-5.1.52-1.el6_0.1.x86_64
则,通过命令卸载;
// 普通删除模式
rpm -e mysql-libs-5.1.52-1.el6_0.1.x86_64
// 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
rpm -e --nodeps mysql-libs-5.1.52-1.el6_0.1.x86_64
4、检查否存在 mariadb 数据库,如有,卸载之,卸载同上
rpm -qa | grep mariadb
如有:mariadb-libs-5.5.56-2.el7.x86_64
卸载:rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
5、通过工具将下载的mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz上传到linux服务器的/tools目录下面
6、解压文件
cd /tools
tar -zxvf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
重命名:mv mysql-5.7.27-linux-glibc2.12-x86_64 mysql-5.7.27
7、添加系统mysql组和mysql用户(检查mysql组和用户是否存在,如无创建)
cat /etc/group | grep mysql
cat /etc/group | grep mysql
#类似
mysql:x:490:
cat /etc/passwd | grep mysql
#类似
mysql:x:496:490::/home/mysql:/bin/bash
以上为存在的情况,如无,执行添加命令:
groupadd mysql
useradd -r -g mysql mysql
#useradd -r参数表示mysql用户是系统用户,不可用于登录系统
8、安装数据库
创建data目录
cd mysql-5.7.27
mkdir data
将/tools/mysql-5.7.27的所有者及所属组改为mysql
chown -R mysql.mysql /opt/mysql/mysql-5.7.25
在/tools/mysql-5.7.27/support-files目录下创建my_default.cnf
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
basedir = /tools/mysql-5.7.27
datadir = /tools/mysql-5.7.27/data
port = 3306
socket = /tmp/mysql.sock
character-set-server=utf8mb4
log-error = /tools/mysql-5.7.27/data/mysqld.log
pid-file = /tools/mysql-5.7.27/data/mysqld.pid
default-storage-engine=INNODB
tmpdir = /tools/mysql-5.7.27/tmp
将此文件拷贝到/etc目录下
cp support-files/my_default.cnf /etc/my.cnf
初始化mysqld
./bin/mysqld --initialize --user=mysql --basedir=/tools/mysql-5.7.27/ --datadir=/tools/mysql-5.7.27/data/
把启动脚本放到开机初始化目录
cp support-files/mysql.server /etc/init.d/mysql
9、启动mysql
service mysql start
此时,如果是Ubuntu如果报错,Failed to start mysql.service: Unit mysql.service not found.
则,sudo systemctl enable mysql.service
sudo systemctl status mysql
此时启动成功,则可以通过mysql -uroot -p 登录mysql
如果这个时候报错:
root@DB-02 ~]# mysql -u root
-bash: mysql: command not found
则可按照命令执行解决:ln -s /tools/mysql-5.7.27/bin/mysql /usr/bin/
原因:这是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件。
首先得知道mysql命令或mysqladmin命令的完整路径,比如mysql的路径是:/usr/local/mysql/bin/mysql,
此时再使用mysql -uroot -p 会出现如下错误
Access denied for user 'root'@'localhost' (using password: YES)
不要慌张,此时只需要更改一下root用户的密码即可
vim /etc/my.cnf 编辑配置文件再最后一行添加 skip-grant-tables
然后 mysql -uroot
进入后 use mysql切换库,
执行修改密码语句即可
此处需要注意的是
update mysql.user set password=password('root') where user='root'
这条语句再5.7之前好使,再5.7以后需要更改为下面的语句,因为password字段更为了authentication_string 根据自己的版本选择语句
update mysql.user set authentication_string=PASSWORD("root")where User='root';
执行完毕出现:
到这里,mysql的安装/配置/登录已经完成,此时需要将my.cnf中添加的最后一句去掉( skip-grant-tables),重启mysql服务即可。
重新进入后执行show databases 后显示
此时只需要按照下面执行即可:
ALTER USER USER() IDENTIFIED BY '你刚刚输入的密码';