在网上看到很多人都在usr/local目录下进行安装,本实例是在opt文件下进行安装,安装mysql5.7以上的实例
将压缩包放入opt文件目录下,前提是在root用户下进行操作。
mv mysql-5.7.22-linux-glibc2.12-x86_64 mysql-5.7.22
建立一个快捷方式,使用mysql指向mysql-5.7.22
ln -s mysql-5.7.22 mysql
添加用户,可以使用groups mysql
查看当前是否有用户组
如果没有用户,则可以添加用户
#添加用户组
groupadd mysql
#添加用户mysql 到用户组mysql
useradd -g mysql mysql
之后,choose own 更改拥有都为mysql
使用命令chown -R mysql:mysql ./
可以看到,从刚刚的两排root变成了两排mysql
之后执行命令./bin/mysqld --initialize --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/data
,执行完之后,会产生一个随机密码,提供后面更改密码使用。可以复制进行保存
将mysql/目录下除了data/目录的所有文件,改回root用户所有,使用命令chown -R root .
mysql用户只需作为mysql-5.7.22/data/目录下所有文件的所有者,执行命令chown -R mysql data
复制文件
cp support-files/mysql.server /etc/init.d/mysqld
之后到cd到init.d目录下
cd /etc/init.d
进行权限设置,chmod 755 /etc/init.d/mysqld
将opt/mysql/bin/my_print_defaults
文件复制到 usr/bin
下面
修改启动脚本 vi /etc/init.d/mysqld
进入之后找到
修改为;
basedir=/opt/mysql-5.7.22/
datadir=/opt/mysql-5.7.22/data
port=3306
加入环境变量,编辑 /etc/profile,这样可以在任何地方用mysql命令了
使用命令vi /etc/profile
,在配置jdk的命令下面加入export PATH=$PATH:/usr/local/mysql-5.7.22/bin
退出vi编辑器,并且保存
刷新立即生效
source /etc/profile
修改mysql配置项,使用命令vi /etc/my.cnf
进行配置,将里面全部内容删除,加入以下代码
[mysqld]
basedir = /opt/mysql-5.7.22
datadir = /opt/mysql-5.7.22/data
socket = /tmp/mysql.sock
user = mysql
tmpdir = /tmp
symbolic-links=0
[mysqld_safe]
log-error = /opt/mysql-5.7.22/data/error.log
pid-file = /opt/mysql-5.7.22/data/mysql.pid
!includedir /etc/my.cnf.d
启动mysql
service mysqld start
注意:在这里如果发生错了,可以删除 /opt/mysql-5.7.22/data
下所有文件,重新执行./bin/mysqld --initialize --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/data
,重新启动mysql
/etc/init.d/mysqld restart
还有,如果在使用mysqld使用了其他人的文件,会导致权限不够,或者如果mysqld文件丢失,可以在执行一次cp support-files/mysql.server /etc/init.d/mysqld
进行复制生成,之后再设置权限,chmod 755 /etc/init.d/mysqld
这样做就可以了
执行完启动,成功之后
进入mysql修改初始密码,修改远程连接的用户权限问题
mysql -uroot -p
use mysql;
update user set password=password("root") where user="root";
如果出现Unknown column ‘password’ in 'field list’使用下面这种方式
或者
update user set authentication_string=password("root") where user="root";
flush privileges;
之后进行退出
exit;