编译安装mysql5.5及以上的版本需要用cmake, 提前装好cmake
下载mysql5.7.23,解压缩,进入目录
wget http://ftp.ntu.edu.tw/MySQL/Downloads/MySQL-5.7/mysql-5.7.23.tar.gz
tar zxvf mysql-5.7.23.tar.gz
cd mysql-5.7.23
我的编译参数
cmake -DCMAKE_INSTALL_PREFIX=../mysql -DMYSQL_UNIX_ADDR=../mysql/var/ -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=../mysql/data -DMYSQL_TCP_PORT=3306 -DENABLE_DOWNLOADS=1
执行
make && make install
经过漫长的编译完成后,进入mysql安装目录
初始化
bin/mysqld --no-defaults --initialize --basedir=/home/liuzhongliang/mysql --datadir=/home/liuzhongliang/mysql/data --lc-messages=zh_CN --explicit_defaults_for_timestamp --character-set-server=utf8 --character-set-filesystem=utf8 --port=3361 --pid-file=/home/liuzhongliang/mysql/var/run/mysql.pid --socket=/home/liuzhongliang/mysql/var/mysql.sock --log-error=/home/liuzhongliang/mysql/log/mysql.log --secure-file-priv='' --read-only=0
注意
--secure-file-priv 是置顶允许进行数据导入导出的文件目录,赋值为''(不是null),允许任何文件目录
--read-only=0 关闭只读模式,我一开始初始化后,用得到的root账号和密码登录不上去,追查出了原来默认是只读模式,加上关闭只读模式的参数进行初始化,才登录成功了。
初始化完成后,会得到默认的root账号和密码
当然后面的哪些配置参数可以放到一个配置文件里来代替,我的mysql 配置文件(/home/liuzhongliang/mysql/my.cnf)
[mysqld]
basedir = /home/liuzhongliang/mysql
datadir = /home/liuzhongliang/mysql/data
open-files-limit= 1024
character-set-server= utf8
[mysqld_safe]
explicit_defaults_for_timestamp
skip-grant-tables
log-error=/home/liuzhongliang/mysql/log/mysql.log
pid-file=/home/liuzhongliang/mysql/var/run/mysql.pid
port = 3361
socket = /home/liuzhongliang/mysql/var/mysql.sock
[client]
socket=/home/liuzhongliang/mysql/var/mysql.sock
character-set-server=utf8
启动mysql
./bin/mysqld_safe --defaults-file=my.cnf & >/dev/null
修改密码
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');