1.建立用于安装mysql的用户目录:useradd mysql_1; passwd mysql_1;
2.在没有mysql_1目录下建立文件夹setup: su - mysql_1; mkdir setup;
3.将下载下来的mysql源码解压之mysql_1用户中: cd setup; tar -zxvf mysql-5.7.22.tar.gz;
4.修改源码目录及文件权限,设置mysql_1下所有文件及文件夹owner: mysql_1:mysql_1
chown mysql_1.mysql_1 * -R
5.在mysql_1目录下创建必要的路径,包括配置文件路径~/etc,数据目录~/data
6.利用cmake进行编译(若无cmake需安装):
cmake -DCMAKE_INSTALL_PREFIX=/home/mysql_1/ -DMYSQL_DATADIR=/home/mysql_1/data -DSYSCONFDIR=/home/mysql_1/etc -DMYSQL_UNIX_ADDR=/home/mysql_1/bin/mysql1.sock -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all
7.若出现boost版本不对的报错,需要安装匹配版本的boost。确保cmake无错误抛出。
例如需要的版本为1.59.0,则下载:
wget http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
创建目录/usr/local/boost,并将boost1.59.0压缩宝解压至该目录下,在cmake过程指定boost路径:
1 cmake -DCMAKE_INSTALL_PREFIX=/home/mysql_1/ 2 -DMYSQL_DATADIR=/home/mysql_1/data 3 -DSYSCONFDIR=/home/mysql_1/etc 4 -DMYSQL_UNIX_ADDR=/home/mysql_1/bin/mysql1.sock 5 -DWITH_MYISAM_STORAGE_ENGINE=1 6 -DWITH_INNOBASE_STORAGE_ENGINE=1 7 -DWITH_MEMORY_STORAGE_ENGINE=1 8 -DWITH_READLINE=1 9 -DENABLED_LOCAL_INFILE=1 10 -DWITH_PARTITION_STORAGE_ENGINE=1 11 -DEXTRA_CHARSETS=all 12 -DWITH_BOOST=/usr/local/boost
8. make install?安装mysql
9.将/etc/my.cnf拷贝至/home/mysql_1/etc目录下,自动义配置。例如:
1 [mysqld] 3 port= 6301 4 bind_address= 192.168.0.156 5 socket=/home/mysql_1/bin/mysqld1.sock 6 datadir= /home/mysql_1/data 7 log-error= /home/mysql_1/bin/log/mysqld1.log 8 pid-file= /home/mysql_1/bin/mysql1.pid 9 #innodb_data_home_dir= /home/mysql_1/data 10 #innodb_log_group_home_dir= /home/mysql_1/data/redo 11 basedir=/home/mysql_1 12 user=mysql_1 13 14 #binlog 15 #server-id = 1 16 #log-bin= /home/mysql_1/data/binlog/mysql-bin 17 #binlog_format= ROW 18 #relay-log= /home/mysql_1/data/relaylog/relay-bin 19 22 #tmpdir=/home/mysql_1/data/tmp 23 #secure-file-priv= 24 #gtid_mode= on 25 #enfore_gtid_consistency=on 26 #skip_name_resolve 28 29 language = /home/mysql_1/share/english 30
10.添加环境变量 /etc/profile: export PATH=$PATH:/home/mysql_1/bin; source /etc/profile使其生效
11.运行mysqld: mysqld --defaults-file=/home/mysql_1/etc/my.cnf &
注:若想指定配置文件启动mysql server进程(mysqld),首先将/etc/my.cnf拷贝至自定义/home/mysql_1/etc/my.cnf需要指定在mysqld启动时指定配置文件路径,且最后需要加上&符号,这样终端不会阻塞。否则终端启动mysqld之后会一直卡在那里。
12.查看log信息(位于mysql_1/bin/log下面),若能看到最后ready for connection| source distribution字样则为成功。若出现任何问题,注意是否配置文件文件出错
13.创建mysql 服务,这样以后可用通过mysql_service_name start/restart/stop等方式将mysql当作service来启停。
cp supports-file/mysql.service /etc/init.d/mysql_6301,
chkconfig --add mysql chkconfig --level 2345 mysql on
因此,开启/重启/停止mysql可以用以下方式:mysql_6301 start/restart/stop
14.到此安装完成,mysql服务正常运行。
此时日志看不到任何异常,但是client可能依然连接不上:
执行mysql -uroot -p‘root‘==> Access denied.
原因:mysql可以连接,但是初始化密码不对。
解决方案:
service mysql_6301 stop
mysqld_safe --user=mysql_1 --skip-grant-tables --skip-networking & (即跳过密码授权)
另开客户端,mysql -uroot mysql,就可以进来了。
查看user表:select user, host, password from mysql.user;
设置密码为root:update user set authentication_string=password(‘root‘) where User=‘root‘;
输入exit退出
启动mysql服务:service mysql start
mysql -u root -p‘root‘
成功进入mysql!!!
原文地址:https://www.cnblogs.com/xinxinBlog/p/9338949.html