>最近学习Spring Boot需要用到数据库,想着在自己服务器上搭建一个MySQL好方便用,记录一下。
首先检查机器上是否已经安装有或安装过MySQL,有的话需要将其卸载,把相关的文件删除掉。
rpm -qa | grep mysql

>我安装的是5.7.24版本,网上说高于这个版本有些配置有变化,不适用这个方法。
下载MySQL
```
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
```
下载后解压,将解压出来的文件夹移动到 /usr/local/,并改名为 mysql
```
tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/
mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql
```
在 /usr/local/mysql 目录下创建data文件夹
更改mysql目录下所有的目录及文件夹所属的用户组和用户,以及权限
```
cd mysql/
mkdir data
chown -R mysql:mysql /usr/local/mysql/
chmod -R 755 mysql/
```
编译安装并初始化mysql,务必记住初始化输出日志末尾的密码(数据库管理员临时密码)
```
cd mysql/bin/
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
```
日志最后的就是临时密码,等会登录用的,复制出来记好。
>例如:
2020-10-12T06:53:43.288869Z 1 [Note] A temporary password is generated for root@localhost: J-kO2ZKArx3z
接下里编辑配置文件my.cnf,配置如下
```
[mysqld]
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
```
创建一个mysql的用户
```
useradd mysql
```
创建mariadb文件夹和mariadb.log文件
```
/var/log/
mkdir mariadb
cd mariadb
touch mariadb.log
chown -R mysql:mysql /var/log/mariadb
```
启动mysql
```
/usr/local/mysql/support-files/mysql.server start
```
添加软连接
```
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
service mysql restart
```
登录mysql,修改密码
```
[root@lixj-server-01 halo]# mysql -u root -p
Enter password:
mysql> set password for root@localhost = '要设置的密码';
```
开放远程连接
```
mysql>use mysql;
msyql>update user set user.Host='%' where user.User='root';
mysql>flush privileges;
```
设置开机自启动
```
1、将服务文件拷贝到init.d下,并重命名为mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
2、赋予可执行权限
chmod +x /etc/init.d/mysqld
3、添加服务
chkconfig --add mysqld
4、显示服务列表
chkconfig --list
```
完成~
>这里只是大概记录,实际可能会遇到问题,搜索一下都可以解决。

Linux系统下安装MySQL