Linux下安装MySQL

、安装MYSQL之前需要安装JDK( https://www.cnblogs.com/yuezc/p/12102638.html)。

1.卸载系统自带的Mariadb

打开Terminal/shell终端:

[root@localhost ~]# rpm -qa|grep mariadb  // 查询出来已安装的mariadb

[root@localhost ~]# rpm -e --nodeps 文件名  // 卸载mariadb,文件名为上述命令查询出来的文件

2. 在etc目录下的my.cnf文件

[root@localhost ~]# touch /etc/my.cnf5.7的版本中不存在此文件,需要创建它,因为这是mysql的配置文件

3. 执行以下命令来创建mysql用户组

[root@localhost ~]# groupadd mysql

4. 执行以下命令来创建一个用户名为mysql的用户并加入mysql用户组

[root@localhost ~]# useradd -g mysql mysql

一、安装mysql。

1、准备好安装的mysql,我所使用的的是 mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz 版本。

下载地址:https://dev.mysql.com/downloads/mysql/

2、在本地(windows)上传,使用FTP工具。记得上传至root用户下,如果再普通用户下,请注意权限配置,可能会有无权限移动、复制以及解压缩等。

3、在将压缩包移动至想要安装的位置,例如在/usr/local/mysql目录下。

[root@localhost ~]# ls
anaconda-ks.cfg              Desktop    Downloads             jdk-7u80-linux-x64.tar.gz  mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz  Public     Videos
apache-tomcat-7.0.96.tar.gz  Documents  initial-setup-ks.cfg  Music                      Pictures                                    Templates
[root@localhost ~]# mv mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz  /usr/local/mysql
(mysql目录并不存在,需要手动创建:mkdir mysql 如下操作)
[root@localhost ~]# cd /usr/local/
[root@localhost local]# mkdir mysql

创建完成并完成移动后,再解压压缩包。如下“进入mysql目录,再解压GZ格式的文件”

[root@localhost local]# cd mysql
[root@localhost mysql]# tar -zxvf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
在查看,会有该目录

  [root@localhost mysql]# ls
  mysql-5.7.27-linux-glibc2.12-x86_64

4、配置my.cnf文件,

授予my.cnf最大权限

[root@localhost ~]# chmod 664 /etc/my.cnf

如下:这些是我个人的配置。用户是root,一般不推荐使用默认设置为mysql

[client]
socket=/usr/local/mysql/mysql-5.7.27-linux-glibc2.12-x86_64/mysql.sock
[mysqld]
port=3306
user=root
basedir=/usr/local/mysql/mysql-5.7.27-linux-glibc2.12-x86_64/
datadir=/usr/local/mysql/mysql-5.7.27-linux-glibc2.12-x86_64/data
socket=/usr/local/mysql/mysql-5.7.27-linux-glibc2.12-x86_64/mysql.sock
pid-file=/usr/local/mysql/mysql-5.7.27-linux-glibc2.12-x86_64/data/mysqld.pid
log-error=/usr/local/mysql/mysql-5.7.27-linux-glibc2.12-x86_64/mysql.err
sql-mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

配置完成后。运行该命令:source  /etc/my.cnf   确保生效。

上述配置文件,里面的基本都是安装的文件的物理路径。注意:datadir=/usr/local/mysql/mysql-5.7.27-linux-glibc2.12-x86_64/data 这个里面的data是不存在的,需要在这个的目录下自己创建。

5、给mysql文件给予去权限:

[root@localhost local]# ls
bin  etc  games  include  jdk  kettle  lib  lib64  libexec  mysql  sbin  share  src  tomcat
[root@localhost local]# chmod 765 mysql

6、然后进入到 :/usr/local/mysql/mysql-5.7.27-linux-glibc2.12-x86_64/ 目录,更改mysql目录下所有的目录及文件夹所属的用户组和用户:

[root@localhost /]# chown -R root:root /usr/local/mysql/mysql-5.7.27-linux-glibc2.12-x86_64 (因为我在配置文件中,设置的user=root)

7、编译安装并初始化mysql,务必记住初始化输出日志末尾的密码

如果不进行此步骤,会在启动时报错:

2020-08-05T07:26:53.324788Z 0 [Note] Plugin 'FEDERATED' is disabled.
mysqld: Table 'mysql.plugin' doesn't exist

一般找错误需要到错误日志中查看,而如何让错误出现在指定的日志文件,需要在my.cnf中配置,且在安装目录下创建此文件mysql.err

[root@localhost mysql5727]# cat /etc/my.cnf 
[client]
socket=/usr/local/mysql5727/mysql.sock
[mysqld]
port=3306
user=root
basedir=/usr/local/mysql5727
datadir=/usr/local/mysql5727/data
socket=/usr/local/mysql5727/mysql.sock
pid-file=/usr/local/mysql5727/data/mysqld.pid
log-error=/usr/local/mysql5727/mysql.err
sql-mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
default_password_lifetime=0

编译安装并初始化mysql的命令:

[root@localhost mysql-5.7.27-linux-glibc2.12-x86_64]# cd bin
[root@localhost bin]# ./mysqld --defaults-file=/etc/my.cnf  --basedir=/usr/local/mysql/mysql-5.7.27-linux-glibc2.12-x86_64/  --datadir=/usr/local/mysql/mysql-5.7.27-linux-glibc2.12-x86_64/data --user=root --initialize

如果未出现初始密码,但后续可以正常启动mysql,在这一步无需担心。

二、设置开机自启动服务控制脚本:

1、复制启动脚本到资源目录 

[root@localhost mysql-5.7.27-linux-glibc2.12-x86_64]# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld

2、增加mysqld服务控制脚本执行权限

[root@localhost mysql-5.7.27-linux-glibc2.12-x86_64]# chmod +x /etc/rc.d/init.d/mysqld

3、将mysqld服务加入到系统服务

[root@localhost mysql-5.7.27-linux-glibc2.12-x86_64]# chkconfig --add mysqld

4、检查mysqld服务是否已经生效

 [root@localhost mysql-5.7.27-linux-glibc2.12-x86_64]# chkconfig --list mysqld

命令输出类似下面的结果:

mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off

表明mysqld服务已经生效,在2345运行级别随系统启动而自动启动,以后可以使用service命令控制mysql的启动和停止

命令为:service mysqld start和service mysqld stop

5、启动mysqld

 [root@localhost mysql-5.7.27-linux-glibc2.12-x86_64]# service mysqld start

启动可能很会报错。请注意。

6、将mysqlbin目录加入PATH环境变量,编辑 ~/.bash_profile文件

[root@localhost mysql]# vim ~/.bash_profile

在文件最后添加如下信息:

export PATH=$PATH:/usr/local/mysql/bin

然后按ESC

继续 shift键加冒号打出来=>  

接下来输入wq回车即可

执行下面的命令是修改的内容立即生效:

[root@localhost mysql]# source ~/.bash_profile

7、以root账户登录mysql,默认是没有密码的

[root@localhost mysql]# mysql -uroot -p

要输入密码的时候直接回车即可。

如果不成功或之前没出现密码,则需要单独设置操作一下:

1、初始密码在/var/log/mysqld.log这个文件里
2、输入命令:grep 'temporary password' /var/log/mysqld.log,可以直接获取密码。
(注:密码为冒号后面的所有字符!)
如果想要更换初始密码,可以按照下面的操作。
在/etc/my.cnf中加入如下内容:
在[mysqld]下添加skip-grant-tables,然后保存并退出。这句意思其实是,无密码登录。
然后重启mysql服务
systemctl restart mysqld
a、重启以后,执行mysql命令进入mysql命令行
b、修改root用户密码
MySQL> update mysql.user set authentication_string=password('123456') where user='root';
MySQL> flush privileges;
MySQL> exit;
c、最后把/etc/my.cnf中的skip-grant-tables注释掉,然后重启mysql,即:service mysqld restart

8、设置root账户密码为root(也可以修改成你要的密码)

mysql>use mysql;
mysql> update
mysql.user set authentication_string=password('sdrs3721') where user='root';
mysql>flush privileges;

这个成功之后,基本就完成了mysql的安装。但还有其他的需要设置

9、开启远程连接:

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

10、如果再远程连接数据库是报10038的错误,则需要将数据库的端口配置在防火墙中:https://www.cnblogs.com/yuezc/p/12518943.html

11、如果在登录成功后,报如下错误:

mysql> use mysql;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

需要修改密码,方式如下:

mysql> SET PASSWORD = PASSWORD('123456');
Query OK, 0 rows affected, 1 warning (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
posted @ 2020-04-13 18:50  Yuezc  阅读(4163)  评论(0编辑  收藏  举报