Linux上安装Mysql
Linux上安装软件常见的几种方式:
源码编译
压缩包解压(一般为tar.gz)
编译好的安装包(RPM、DPKG等)
在线安装(YUM、APT等)
以上几种方式便捷性依次增加,但通用性依次下降,比如直接下载压缩包进行解压,这种方式一般需要自己做一些额外的配置工作,但只要掌握了方法,各个平台基本都适用,YUM虽然简单,但是平台受限,网络受限,必要的时候还需要增加一些特定YUM源。
几种安装方式最好都能掌握,原则上能用简单的就用简单的:YUM>RPM>tar.gz>源码
先查看是否安装过MySQL
rpm -qa|grep mysql
若是有请看http://t.csdn.cn/PIzax中如何卸载软件
使用tar.xz安装
使用wget命令下载MySQL压缩包
wget https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.33-linux-glibc2.28-x86_64.tar.gz
wget的用法是
wget + 下载链接
解压MySQL
切换到MySQL压缩包存放的目录使用解压命令
tar -zxvf mysql-8.0.33-linux-glibc2.28-x86_64.tar.gz
将MySQL的解压文件名重命名为mysql
mv mysql-8.0.33-linux-glibc2.28-x86_64 mysql
创建mysql用户组和mysql用户
cat /etc/group | grep mysql
#类似
mysql:x:490:
cat /etc/passwd | grep mysql
#类似
mysql:x:496:490::/home/mysql:/bin/bash
以上为存在的情况,如无,执行添加命令:
groupadd mysql
useradd -r -g mysql mysql
注意:useradd -r参数表示mysql用户是系统用户,不可用于登录系统
创建data,数据存放目录
cd mysql
mkdir data
修改权限
chown -R mysql.mysql /opt/jieya/mysql
创建配置文件
在/opt/jieya/mysql/support-files目录下创建my_default.cnf,创建命令
cd /opt/jieya/mysql/support-files
touch my_default.cnf
在文件中复制以下内容(如果你的安装目录和我不一样,那么这些目录要和你自己的目录对应才行):
vim my_default.cnf
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
basedir = /opt/jeiya/mysql
datadir = /opt/jieya/mysql/data
port = 3306
socket = /tmp/mysql.sock
character-set-server=utf8
log-error = /opt/jieya/mysql/data/mysqld.log
pid-file = /opt/jieya/mysql/data/mysqld.pid
拷贝,如果提示是否覆盖,y
cp my_default.cnf /etc/my.cnf
初始化
cd /opt/jieya/mysql
./bin/mysqld --initialize --user=mysql --basedir=/opt/jieya/mysql/ --datadir=/opt/jieya/mysql/data/
如果报下面的错误:
./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
那就先执行下面的命令再执行上面的初始化命令
yum install -y libaio
初始密码
初始化之后到日志中去查看初始密码,等会登录用。日志在
/opt/jieya/mysql/data/mysqld.log
可以用cat 命令查看
cat /opt/jieya/mysql/data/mysqld.log
a8?DQir=T+k+就是密码,查看自己的并且记下来
[Note] A temporary password is generated for root@localhost: a8?DQir=T+k+
如果在data下面没有找到mysqld.log日志文件,有可能是2.5步中配置文件的内容有问题,去检查/etc/my.cnf这个文件,看看配置的那些路径是不是正确的,或者你的安装目录和我不一样,但是配置文件却没有改
启动
把启动脚本放到开机初始化目录
cp support-files/mysql.server /etc/init.d/mysql
启动命令
service mysql start
如果启动报错
Starting MySQL.2021-06-21T04:56:48.691659Z mysqld_safe The file /usr/local/mysql/bin/mysqld
does not exist or is not executable. Please cd to the mysql installation
directory and restart this script from there as follows:
./bin/mysqld_safe&
See http://dev.mysql.com/doc/mysql/en/mysqld-safe.html for more information
The server quit without updating PID file (/opt/mysql-5.7.1[FAILED]ysqld.pid).
这是因为:在MySQL 5.7中,安全性提升,要求切换到软件安装目录,来启动数据库,所以得换种方式启动
cd /opt/jieya/mysql
./bin/mysqld_safe --defaults-file=/etc/my.cnf &
登录,刚刚日志中的密码
./bin/mysql -u root -p
每次都要这样来登录,有点麻烦,可以这样做
ln -s /opt/jieya/mysql/bin/mysql /usr/bin
以后登录就可以直接用mysql命令登录了
mysql -uroot -p
修改密码
set password=password('123456');
flush privileges;
设置远程连接
grant all privileges on *.* to root@'%' identified by 'root';
flush privileges;
重启mysql才能生效。
service mysql stop
service mysql start
service mysql restart