第一步先去mysql官网下载压缩包
网址:MySQL :: MySQL Community Downloads
根据自己的系统选择安装包,我这里选择的是X86 64位
登录linux系统后:
第一步:
1)解压下载好的mysql8.0安装包
tar xvf mysql-8.0.29-linux-glibc2.12-x86_64.tar.xz
2)重命名解压出来的文件夹,移动到目标目录,这里改成mysql
mv ./mysql-8.0.29-linux-glibc2.12-x86_64 /usr/local/mysql
3)/usr/local/mysql文件夹下创建data文件夹 存储文件
cd /usr/local/mysql
mkdir data
4)分别创建用户组以及用户和密码(如果提示已存在说明之前有创建过了)
5)、授权刚刚新建的用户
chown -R mysql.mysql /usr/local/mysql
chmod 750 /usr/local/mysql/data -R
6)、配置环境,编辑/etc/profile文件
vim /etc/profile
加入环境变量
export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib
source /etc/profile
7)、编辑my.cnf文件
vi /etc/my.cnf
按下面复制进去就好了,#号开头的不用管,一样,添加完之后,保存文件并退出
[mysql]
default-character-set=utf8mb4
[client]
#port=3306
socket=/var/lib/mysql/mysql.sock
[mysqld]
#port=3306
#server-id=3306
user=mysql
general_log = 1
general_log_file= /var/log/mysql/mysql.log
socket=/var/lib/mysql/mysql.sock
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
log-bin=/usr/local/mysql/data/mysql-bin
innodb_data_home_dir=/usr/local/mysql/data
innodb_log_group_home_dir=/usr/local/mysql/data/
character-set-server=utf8mb4
lower_case_table_names=1
autocommit=1
default_authentication_plugin=mysql_native_password
symbolic-links=0
# Disabling symbolic-links is recommended to prevent assorted security risks
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[mysqld_safe]
log-error=/usr/local/mysql/data/mysql.log
pid-file=/usr/local/mysql/data/mysql.pid
8)切换到/usr/local/mysql/bin目录下
cd bin
9)初始化基础信息,得到数据库的初始密码(在/usr/local/mysql/bin目录下执行)
./mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/ --initialize
如图,复制出红框的初始密码,保存到本地,后面需要使用到。
10)复制 mysql.server 文件,在/usr/local/mysql目录下执行
cp ./support-files/mysql.server /etc/init.d/mysql
cp ./support-files/mysql.server /etc/init.d/mysqld
11)、赋予权限
chown 777 /etc/my.cnf
chmod +x /etc/init.d/mysql
chmod +x /etc/init.d/mysqld
12)检查一下/var/lib/mysql是否存在,否则进行创建
mkdir /var/lib/mysql
chown -R mysql:mysql /var/lib/mysql/
13)启动数据库,有SUCCESS字眼说明MySQL安装完成
service mysql start
ps:
如果发现启动失败,可以先查看data里面的mysql.log,如果有提示3306这样的字样,第一个想到的应该是端口被占用,
使用lsof -i:端口号,查看是哪个PID(进程号)占用了该端口,然后使用kill PID(进程号)杀掉进程,重新执行service mysql start
如果确定没有问题,登录mysql
mysql -uroot -pns#WvaqE,3#j (上面生成的密码)
登录mysql出错:mysql: error while loading shared libraries: libtinfo.so.5: cannot open share
因为安装的是glibc版本,所以可能会缺少依赖,
安装:yum install libncurses.so.5
在此登录成功。
第二步:修改密码,并设置远程连接(为了可以在别的机器下面连接该mysql)
1)、修改数据库root账号的密码,并设置可以远程访问(因为root默认是不能远程访问的)
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
2)、执行
flush privileges; 使密码生效
3)、选择数据库
use mysql;
4)再修改远程连接并生效
update user set host='%' where user='root';
5)执行提交命令,搞定!
flush privileges;
最后就可以使用root账号去登录mysql了
防火墙开启需要把3306加入白名单
服务器防火墙开启的情况下,必须要让防火墙开启myslq的3306端口,其他服务器上的应用才能成功连接。
或者直接关闭服务器的防火墙。
题外:
给mysql创建新的数据库用户并授予权限
1)创建用户(名称随意,这里的用户名称为mysql)并可以远程访问
CREATE user 'mysql'@'%';
#修改密码
alter user 'mysql'@'%' identified with mysql_native_password by 'tcl.2021';
2)创建新的数据库
#create database 数据库名 default character set utf8mb4 collate utf8mb4_unicode_ci;
3)把新的数据库授权给新用户
#将test库的所有权限赋予mysql用户
grant all privileges on test.* to "mysql"@"%";
grant all privileges on test.* to "tcl"@"%";
4)、刷新权限
flush privileges;