非root安装mysql
本机上传压缩包
scp mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz 用户名@远程主机:/home/dbdev/mysql
解压缩
tar -zxvf mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.29-linux-glibc2.12-x86_64 mysql
创建实例数据目录
mkdir data log
初始化
./mysql/bin/mysqld --initialize --user=dbdev --basedir=/home/dbdev/mysql/mysql --datadir=/home/dbdev/mysql/data
可能报以下错:
error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
解决方法:
- 查看是否安装 rpm -qa|grep libaio
- yum install libaio (需要root权限)
初始化成功后记下这个随机密码,后面要用到
配置mysql
vi ./mysql/mysql.cnf
[client]
port=3306
socket=/home/dbdev/mysql/mysql/mysql.sock
[mysqld]
port=3306
#设置mysql的安装目录
basedir=/home/dbdev/mysql/mysql
# 设置mysql数据库的数据的存放目录
datadir=/home/dbdev/mysql/data
pid-file=/home/dbdev/mysql/mysql/mysql.pid
socket=/home/dbdev/mysql/mysql/mysql.sock
log_error=/home/dbdev/mysql/log/error.log
collation_server=utf8_general_ci
# 服务端使用的字符集默认为8比特编码的latin1字符集
character_set_server=utf8
log-bin=/home/dbdev/mysql/log/mysql-bin
server-id=100
mysqld_safe模式启动数据库
./mysql/bin/mysqld_safe --defaults-file=/home/dbdev/mysql/mysql/mysql.cnf --user=dbdev &
修改默认密码
登陆mysql
./mysql/bin/mysql -u root -p
可能会报以下错:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
解决方法:
ln -s /home/dbdev/mysql/mysql/mysql.sock /tmp/mysql.sock
或者
./mysql/bin/mysql -u root -p -S /home/dbtest/mysql/mysql/mysql.sock
修改密码
set password for 'root'@'localhost' = password('nh123456');
flush privileges;
开启远程控制
grant all privileges on 数据库名.表名 to 创建的用户名(root)@"%" identified by "密码";
# 数据库名.表名 如果写成*.*代表授权所有的数据库
# grant all privileges on *.* to root@"113.64.243.1" identified by "123456789";
# grant all privileges on *.* to 'root'@'%' identified by 'nh123456' with grant option;
flush privileges;
@ 后面是访问mysql的客户端IP地址(或是 主机名) % 代表任意的客户端,如果填写 localhost 为本地访问(那此用户就不能远程访问该mysql数据库了)。
同时也可以为现有的用户设置是否具有远程访问权限。
停止mysqld_safe模式改为正常启动
ps -ef|grep mysql
kill -9 30379
./mysql/bin/mysqld --defaults-file=/home/dbdev/mysql/mysql/mysql.cnf --user=dbdev &