Linux普通用户安装配置mysql(非root权限)
说明:在实际工作中,公司内网的机器我们一般没有root权限,也没有连网,最近参考网上的资料使用一般的账户成功安装mysql,记录如下
Linux版本:RedHat CentOs
Mysql版本:5.7.29
使用的一般用户名:apps
一、下载安装包
进入mysql官网下载社区通用版 MySQL Community Server,不清楚系统多少位的,执行以下命令查看
$ cat /proc/version #查看系统版本等信息
二、解压安装包
-
mysql下载完成后上传到当前普通用户目录下解压,依次执行以下命令
$ tar -zxvf mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz #解压文件包 $ mv mysql-5.7.29-linux-glibc2.12-x86_64 /home/apps/mysql #移动到指定目录并重命名
-
编辑my.cnf配置文件,放在当前mysql安装目录下,依次执行以下命令
$ cd mysql #进入安装目录 $ vim my.cnf #编辑配置文件
-
编辑my.cnf文件,我这里mysql的路径是
/home/apps/mysql
,需根据自己的路径进行修改[client] port=3306 #服务端口 socket=/home/apps/mysql/mysql.sock #指定套接字文件 [mysqld] port=3306 #服务端口 basedir=/home/apps/mysql #mysql安装路径 datadir=/home/apps/mysql/data #数据目录 pid-file=/home/apps/mysql/mysql.pid #指定pid文件 socket=/home/apps/mysql/mysql.sock #指定套接字文件 log_error=/home/apps/mysql/error.log #指定错误日志 server-id=100 #Mysql主从唯一标识
三、安装启动mysql
-
安装:依次执行以下命令,指定配置文件安装并初始化mysql,没有报错即安装成功
$ cd bin $ ./mysqld --defaults-file=/home/apps/mysql/my.cnf --initialize --user=apps --basedir=/home/apps/mysql --datadir=/home/apps/mysql/data #安装并初始化mysql
-
启动:依次执行以下命令,没有报错并能成功监听3306端口即表示启动成功
$ ./mysqld_safe --defaults-file=/home/apps/mysql/my.cnf --user=apps & #启动mysql $ netstat -tln | grep 3306 #查看是否成功监听3306端口
四、登入mysql
-
获取初始密码,初始密码在error.log日志文件内,执行以下命令
$ cd .. $ less error.log | grep root@localhost #查找root用户的初始登录密码
-
登录mysql,直接输入登录命令
bin/mysql -u root -p
有可能会报以下错上图错误表示mysql没有找到
/tmp/mysqk.sock
文件有两种解决方法
-
如果本机上没有其他数据库,可以通过软连接方式将寻找sock文件的路径指向我们mysql安装目录下的sock文件
-
也可以直接指定mysql.sock文件启动,执行以下命令:
$ ./mysql -u root -p -S /home/apps/mysql/mysql.sock #指定sock文件登录
-
-
成功登入mysql后,修改登录密码,执行以下sql语句
SET PASSWORD FOR \'root\'@\'localhost\' = PASSWORD(\'123456\'); --设置登录密码为123456 flush privileges;
五、开启远程访问
-
使用第三方工具连接mysql数据库时,需要提前开启mysql的远程访问限制,执行以下sql语句
use mysql --切换至mysql数据库 select User,authentication_string,Host from user; --查看用户认证信息
查表后可以看到都是localhost的访问权限
-
修改权限,允许其他地址的主机访问mysql,这里密码是123456,实际根据自己的来,%代表所有主机,也可以具体到ip地址
GRANT ALL PRIVILEGES ON *.* TO \'root\'@\'%\' IDENTIFIED BY \'123456\'; --允许其他主机访问 flush privileges;
再次查表可以发现多了个用户,表示成功开启远程访问,可以使用工具远程连接
select User,authentication_string,Host from user
至此,我们的mysql就算安装完成了