linux安装mysql5.7.17
安装之前准备工作
- 准备安装文件
- 没有安装过mydql的系统,或者彻底卸载干净
卸载原有mysql
- 执行# service mysqld status,mysql没有运行,停止服务失败
- 开始卸载,查找所有mysql文件# find / -name mysql
- 删除文件
# rm -rf /usr/local/mysql/mysql-advanced-5.7.17-linux-glibc2.5-x86_64/
# rm -rf /usr/share/mysql
# rm -rf /usr/bin/mysql
# rm -rf /usr/lock/subsys/
# rm -rf /var/lock/subsys/mysql
id mysql
# userdel mysql
# service mysqld status
显示未被识别的服务证明删除干净
开始安装
(说明:本文是多次修改整理的,所以会出现命令中路径前后不一致的情况,注意不要混淆,全部改成自己的路径即可)
-
新建安装目录 # mkdir /data/mysql-5.7.17
新建数据文件夹 # mkdir /data/mysql -
将安装文件放至/data文件夹内,进行解压
# tar -zxvf mysql-advanced-5.7.17-linux-glibc2.5-x86_64.tar.gz
-
重命名解压后的文件夹 # mv /data/mysql-advanced-5.7.17-linux-glibc2.5-x86_64 /data/mysql-5.7.17
新版mysql只认 /usr/local/mysql安装路径,所以配置文件中的路径需要修改 -
添加用户和用户组并授权
-
# groupadd mysql # useradd -r -g mysql mysql # chown -R mysql:mysql /data/mysql-5.7.17 # chown -R mysql:mysql /data/mysql/ # chmod -R 755 /data/mysql-5.7.17
-
# yum search libaio//查看有没有依赖包
如果没有这个依赖包初始化时候会报如下错
#yum install libaio-devel.x86_64//安装缺少的依赖
下图为安装过程输出
再次执行查看依赖命令
# yum search libaio//查看有没有依赖包,查看就会显示如下图
-
执行初始化命令
# cd /data/mysql-5.7.17/bin # ./mysqld --user=mysql --basedir=/data/mysql-5.7.17 --datadir=/data/mysql --initialize//注意root@localhost:之后红圈圈住的为初始化临时密码,初次登录时要用到;执行这步报错原因可能是之前安装在datadir目录中的残留文件没有删除
-
修改mysql.server文件
# sh /data/mysql-5.7.17/support-files/mysql.server start
执行这个命令可能会报错,因为我们不在默认路径下面安装,所以执行下个命令修改配置文件
# vi /data/mysql-5.7.17/support-files/mysql.server//修改路径
修改红框部分的内容
修改后,如下图
# cp /data/mysql-5.7.17/support-files/mysql.server /etc/init.d/mysqld
# chmod 755 /etc/init.d/mysqld -
修改/etc/my.cnf文件
# vi /etc/my.cnf //将下面一段复制进去,替换了文件中的所有内容!!!其余都删掉 [client] socket =/data/mysql-5.7.17/mysql.sock host=localhost user=root password='root' # pipe # socket=0.0 port=3306 [mysql] default-character-set=utf8 [mysqld] lower_case_table_names=1 basedir=/data/mysql-5.7.17 datadir=/data/mysql port=3306 pid-file=/data/mysql-5.7.17/mysqld.pid #skip-grant-tables skip-name-resolve socket = /data/mysql-5.7.17/mysql.sock character-set-server=utf8 default-storage-engine=INNODB explicit_defaults_for_timestamp = true # Server Id. server-id=1 max_connections=2000 query_cache_size=0 table_open_cache=2000 tmp_table_size=246M thread_cache_size=300 #限定用于每个数据库线程的栈大小。默认设置足以满足大多数应用 thread_stack = 192k key_buffer_size=512M read_buffer_size=4M read_rnd_buffer_size=32M innodb_data_home_dir = /data/mysql innodb_flush_log_at_trx_commit=0 innodb_log_buffer_size=16M innodb_buffer_pool_size=256M innodb_log_file_size=128M innodb_thread_concurrency=128 innodb_autoextend_increment=1000 innodb_buffer_pool_instances=8 innodb_concurrency_tickets=5000 innodb_old_blocks_time=1000 innodb_open_files=300 innodb_stats_on_metadata=0 innodb_file_per_table=1 innodb_checksum_algorithm=0 back_log=80 flush_time=0 join_buffer_size=128M max_allowed_packet=1024M max_connect_errors=2000 open_files_limit=4161 query_cache_type=0 sort_buffer_size=32M table_definition_cache=1400 binlog_row_event_max_size=8K sync_master_info=10000 sync_relay_log=10000 sync_relay_log=10000 sync_relay_log_info=10000 #批量插入数据缓存大小,可以有效提高插入效率,默认为8M bulk_insert_buffer_size = 64M interactive_timeout = 86400 wait_timeout = 86400 log-bin-trust-function-creators=1 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
-
启动mysql
# service mysqld start//重启mysql
直接执行命令可能会报错,需要建立软连接,执行下一个命令
# ln -s /data/mysql-5.7.17/bin/mysqld /usr/local/mysql/bin/mysqld 建立软连接,完成后执行上个命令重启 //重启后登录修改密码 # /data/mysql-5.7.17/bin/mysql -uroot -p,J0j4dw:kGnm//用临时密码登录 mysql> set password=password('mypassword');//修改密码 grant all privileges on *.* to root@'%' identified by 'mypassword';//执行次命令是允许任何ip以root连接,否则可能远程无法连接只允许本地连接 flush privileges;