Linux 安装MySQL
一、准备工作
https://dev.mysql.com/downloads/mysql/
1.1 上传到指定目录,解压
tar -xvf mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz
1.2 添加用户和组
[root@VM_0_3_centos mysql]# groupadd mysql
[root@VM_0_3_centos mysql]# useradd -r -g mysql mysql
1.3 修改目录所属组和用户
[root@VM_0_3_centos mysql]# useradd -r -g mysql mysql
[root@VM_0_3_centos mysql]# chown -R mysql:mysql /usr/local/mysql/
1.4创建数据库存放目录
在数据库解压之后的目录,data目录和bin处于同一级。
[root@VM_0_3_centos mysql]# mkdir data
注:在腾讯云服务器上创建data目录然后初始化正常 ,但在阿里云服务器上创建目录后显示如下错误。
删除创建的data文件夹,执行初始化,会自动生成data文件夹。
二、安装MySQL
2.1 初始化,执行解压目录下bin目录中的mysqld,user就是之前创建的用户。
[root@VM_0_3_centos mysql-8.0.19]# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/mysql-8.0.19 --datadir=/usr/local/mysql/mysql-8.0.19/data
可能出现问题
./bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
解决方案
yum -y install numactl
初始化后会生成一个临时密码,建议复制下来。
临时密码
A temporary password is generated for root@localhost: X;(9spFlVext
2.2 修改配置文件 vim /etc/my.cnf
启动mysql服务
2.3 编辑配置文件vim /etc/profile,将mysql路径添加使用source /etc/profile使其生效,这样就可以使用mysql命令了。
2.4 修改密码,先使用之前生成的临时密码登录。
执行修改密码语句出现提示说,必须重置密码才能执行修改密码语句...这不是死循环吗。
这时我们先执行quit退出 mysql.
编辑vime /etc/my.cnf文件,添加skip-grant-tables
加上一行,在重启mysql,可以免密登录。
重启服务。
再次登录,这次输入密码直接回车即可。
先查看下数据库,使用mysql库。
使用mysql库后,查看下其中user表的信息。其中Host代码允许连接的地址,这里标识的是本地。
使用远程连接时,是多台机器连接到数据库,所以先将此处的localhost修改为%表示任意地址。
修改Host为%,%任意地址可连接
接着我们来修改密码:
先要执行flush privileges;
不然会弹出ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
更新密码语句 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'mysql@hcf19971002';
其中mysql_native_password指定加密方式,MySQL8.0密码加密方式发生了变换,这时使用Navicat连接会出现错误,所以指定加密方式为以前的方式。
这里的'root'和‘%’就是user表中user和host,由于此处先将localhost修改为了%所以是root@%,如果没有修改就是root@localhost.
密码修改完成,退出注释掉/etc/my.cnf中的skip-grant-tables,重启服务。
再次使用修改的密码登录即可。
其他:设置开机自启动
首先设置连接文件,使用service mysql resart重启。
#设置开机自启动#复制服务文件到 /etc/init.d/下,并取名为mysql
[root@VM_0_3_centos support-files]# cp -a /usr/local/mysql/mysql8.0.19/support-files/mysql.server /etc/init.d/mysqld #赋予可执行权限
[root@VM_0_3_centos support-files]# chmod a+x /etc/init.d/mysqld
#添加服务 [root@VM_0_3_centos support-files]# chkconfig --add mysqld
#显示服务列表 [root@VM_0_3_centos support-files]# chkconfig --list
启动停止命令
service mysql stop
service mysql start
参考:
https://www.jianshu.com/p/276d59cbc529
https://blog.csdn.net/s78365126/article/details/85267154