Centos——安装mysql
参考文档:https://blog.csdn.net/hxfghgh/article/details/99675087
1.使用xftp工具将下载好的mysql上传至服务器
[root@localhost tmp]# ls
mysql-8.0.17-linux-glibc2.12-x86_64.tar.xz
2.解压:
[root@localhost tmp]# tar -Jxf mysql-8.0.17-linux-glibc2.12-x86_64.tar.xz
[root@localhost tmp]# ls
mysql-8.0.17-linux-glibc2.12-x86_64 mysql-8.0.17-linux-glibc2.12-x86_64.tar.xz
3.将文件移动至/usr/local 下,并重命名为mysql
[root@localhost tmp]# mv mysql-8.0.17-linux-glibc2.12-x86_64 /usr/local/mysql
[root@localhost tmp]# cd /usr/local/mysql/
[root@localhost mysql]# ls
bin docs include lib LICENSE LICENSE.router man README README.router run share support-files var
4.创建文件夹 /data/mysql/data
[root@localhost /]# mkdir -p /data/mysql/data
5.卸载系统自带的maridb
[root@localhost /]# rpm -qa|grep mariadb
mariadb-5.5.52-1.el7.x86_64
mariadb-libs-5.5.52-1.el7.x86_64
mariadb-server-5.5.52-1.el7.x86_64
[root@localhost /]# rpm -e --nodeps mariadb-5.5.52-1.el7.x86_64
[root@localhost /]# rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64
[root@localhost /]# rpm -e --nodeps mariadb-server-5.5.52-1.el7.x86_64
[root@localhost /]# rpm -qa|grep mariadb
[root@localhost /]#
6.在 /data/mysql/data/目录下编辑my.cnf
[root@localhost /]# cd /data/mysql/
[root@localhost mysql]# cd data/
[root@localhost data]# vi my.cnf
my.cnf的内容如下:
[client]
port=3306
socket=/data/mysql/mysql.sock
[mysqld]
port=3306
user=mysql
socket=/data/mysql/mysql.sock
basedir=/usr/local/mysql
datadir=/data/mysql/data
log-error=/data/mysql/error.log
pid-file = /data/mysql/mysql.pid
transaction_isolation = READ-COMMITTED
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
lower_case_table_names = 1
sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_I
N_DATE,ERROR_FOR_DIVISION_BY_ZERO"
7.创建用户组和用户(若提示已存在,说明之前创建过,不用管):
[root@localhost data]# groupadd mysql
[root@localhost data]# useradd -g mysql mysql
8.更改目录和文件权限:
[root@localhost data]# chown -R mysql:mysql /data/mysql
[root@localhost data]# chown -R mysql:mysql /usr/local/mysql
#将读写权限赋值给两个文件夹
[root@localhost data]# chmod -R 755 /data/mysql /usr/local/mysql
[root@localhost data]#
9.初始化mysql(需记录初始化密码):
[root@localhost data]# cd /usr/local/mysql
[root@localhost mysql]# ./bin/mysqld --initialize --user=mysql
2019-10-12T06:08:17.285639Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.17) initializing of server in progress as process 20753
2019-10-12T06:08:19.064620Z 5 [Note] [MY-010454] [Server] A temporary
# 一定要记住这个初始化密码,登录的时候需要
password is generated for root@localhost: pjGe/)Q.a8a7
2019-10-12T06:08:20.499405Z 0 [System] [MY-013170] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.17) initializing of server has completed
10.启动mysql
[root@localhost mysql]# ./support-files/mysql.server start
Starting MySQL.Logging to '/usr/local/mysql/data/localhost.localdomain.err'.
. SUCCESS!
11.登录mysql:这里的登录密码就是之前初始化需要记住的密码
[root@localhost init.d]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
……………………………………
mysql>
这步如果提示:bash:mysql:未找到命令…
需要打开编辑系统环境变量文件 /etc/profile,把 MySQL 的 bin 路径加入到环境变量中:
export PATH=$PATH:/usr/local/mysql/bin
12.授权以及设置账户可以远程连接
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; #修改密码
Query OK, 0 rows affected (0.02 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
Database changed
mysql> select host,user from user; # 查看权限,%表示全网 localhost表示内网允许
+-----------+------------------+
| host | user |
+-----------+------------------+
| localhost | mysql.infoschema |
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
+-----------+------------------+
4 rows in set (0.00 sec)
mysql> update user set host = '%' where user ='root';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select host,user from user;
+-----------+------------------+
| host | user |
+-----------+------------------+
| % | root |
| localhost | mysql.infoschema |
| localhost | mysql.session |
| localhost | mysql.sys |
+-----------+------------------+
4 rows in set (0.00 sec)
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected (0.02 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
修改密码时若遇到报错,可以先运行下flush privileges; 语句,再进行修改密码操作