Linux安装MySQL
-
使用rpm -qa|grep mysql命令来查看rpm方式安装的mysql,如果查询结果不为空,需要将这些rpm卸载掉。
[root@localhost support-files]# rpm -qa | grep mysql [root@localhost support-files]# rpm -e --nodeps 卸载的包
-
然后找出mysql文件夹,并删除
[root@localhost support-files]# find / -name mysql [root@localhost support-files]# rm -rf 删除目录
删除mysql的rpm包 rpm -qa | grep -i mysql | xargs rpm -e --nodeps 删除mysql遗留的文件 find / -name mysql | xargs rm -rf find / -name my.cnf | xargs rm -rf
- 使用xftp把mysql-8.0.25-linux-glibc2.12-x86_64.tar.xz压缩包上传到/usr/local 目录
-
解压文件
[root@localhost local]# tar -xvf mysql-8.0.25-linux-glibc2.12-x86_64.tar.xz
-
重命名为mysql
[root@localhost local]# mv mysql-8.0.25-linux-glibc2.12-x86_64 mysql
-
进入到/usr/local目录下,创建用户和用户组并授权
[root@localhost local]# pwd /usr/local [root@localhost local]# groupadd mysql #创建用户组 [root@localhost local]# useradd -r -g mysql mysql #创建用户 [root@localhost local]# chown -R mysql:mysql ./ #授权 [root@localhost local]#
-
进入/usr/local/mysql目录下,并创建data文件夹
[root@localhost mysql]# mkdir data
-
初始化数据库,会自动生成随机密码,并记下首次登陆要用
[root@localhost mysql]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
-
修改/usr/local/mysql当前目录得用户
[root@localhost mysql]# chown -R root:root ./ [root@localhost mysql]# chown -R mysql:mysql data
-
创建my.cnf文件
[root@localhost mysql]# cd support-files/ [root@localhost support-files]# touch my-default.cnf [root@localhost support-files]# chmod 777 ./my-default.cnf [root@localhost support-files]# cp my-default.cnf /etc/my.cnf cp:是否覆盖"/etc/my.cnf"? y [root@localhost support-files]# ll 总用量 20 -rwxrwxrwx. 1 root root 0 11月 8 10:06 my-default.cnf -rwxr-xr-x. 1 root root 1061 4月 23 2021 mysqld_multi.server -rw-r--r--. 1 root root 2027 4月 24 2021 mysql-log-rotate -rwxr-xr-x. 1 root root 10576 4月 24 2021 mysql.server [root@localhost support-files]#
-
配置my.cnf
[root@localhost support-files]# vim /etc/my.cnf
[client] port = 3306 socket = /tmp/mysql.sock [mysqld] init-connect='SET NAMES utf8' basedir=/usr/local/mysql #根据自己的安装目录填写 datadir=/usr/local/mysql/data #根据自己的mysql数据目录填写 socket=/tmp/mysql.sock max_connections=200 # 允许最大连接数 character-set-server=utf8 # 服务端使用的字符集默认为8比特编码的latin1字符集 default-storage-engine=INNODB # 创建新表时将使用的默认存储引擎
-
开机自启,进入/usr/local/mysql/support-files进行设置
[root@localhost support-files]# cp mysql.server /etc/init.d/mysql [root@localhost support-files]# chmod +x /etc/init.d/mysql
-
注册服务
[root@localhost support-files]# chkconfig --add mysql [root@localhost support-files]# chkconfig --list mysql 注:该输出结果只显示 SysV 服务,并不包含 原生 systemd 服务。SysV 配置数据 可能被原生 systemd 配置覆盖。 要列出 systemd 服务,请执行 'systemctl list-unit-files'。 查看在具体 target 启用的服务请执行 'systemctl list-dependencies [target]'。 mysql 0:关 1:关 2:开 3:开 4:开 5:开 6:关 [root@localhost support-files]#
-
/etc/ld.so.conf要配置路径,不然报错
[root@localhost support-files]# vim /etc/ld.so.conf
加入这段 /usr/local/mysql/lib
-
配置环境变量
[root@localhost support-files]# vim /etc/profile
-
更新环境变量
[root@localhost support-files]# source /etc/profile
-
启动mysql服务
[root@localhost support-files]# service mysql start Starting MySQL.Logging to '/usr/local/mysql/data/localhost.localdomain.err'. .. SUCCESS! [root@localhost support-files]#
-
登录,密码为上面第6步随机生成得密码(输入时不显示)
[root@localhost support-files]# mysql -u root -p
-
修改 ‘root’@‘localhost’ 的密码
mysql> alter user 'root'@'localhost' identified by 'root'; Query OK, 0 rows affected (0.00 sec) mysql>
-
开启允许远程登录
mysql> use mysql; #如果报以下该错误 ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. mysql> ALTER USER USER() IDENTIFIED BY 'root'; #解决方式 Query OK, 0 rows affected (0.01 sec)
mysql> use mysql; #进入数据库 Database changed mysql> select host, user, authentication_string, plugin from user; #查看用户信息 +-----------+------------------+------------------------------------------------------------------------+-----------------------+ | host | user | authentication_string | plugin | +-----------+------------------+------------------------------------------------------------------------+-----------------------+ | localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | | localhost | mysql.session | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | | localhost | mysql.sys | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password | | localhost | root | $A$005$Rq&pD"<:TvYbeAUCd9i4Hrlg1Y1a99i79H20gCu/yvUaUtgC4eJ69e. | caching_sha2_password | +-----------+------------------+------------------------------------------------------------------------+-----------------------+ 4 rows in set (0.00 sec) mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'root'; #创建任意ip连接root用户 Query OK, 0 rows affected (0.01 sec) mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; #授权root用户可以远程登陆 Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; #立即生效 Query OK, 0 rows affected (0.00 sec) mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root'; #修改'root'@'%'用户密码 Query OK, 0 rows affected (0.00 sec) mysql> FLUSH PRIVILEGES; #立即生效 Query OK, 0 rows affected (0.00 sec) mysql> exit; #退出 Bye [root@localhost support-files]# service mysql restart #重启mysql服务 Shutting down MySQL. SUCCESS! Starting MySQL. SUCCESS! [root@localhost support-files]#
防火墙开放3306端口
[root@localhost support-files]# firewall-cmd --zone=public --add-port=3306/tcp --permanent success [root@localhost support-files]# systemctl restart firewalld.service [root@localhost support-files]# firewall-cmd --list-ports 3306/tcp