linux 二进制安装mysql5.7.18

来源:互联网 发布:d动态壁纸软件 编辑:程序博客网 时间:2024/05/30 20:09

弄了两个晚上,mysql总算安装好了

1 mysql官网下载包mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz

2 上传到linux   /usr/local下


tar -zxvf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.7.18-linux-glibc2.5-x86_64 mysql


3 在mysql下创建两个文件夹 


mkdir data  

mkdir log


4 创建用户和用户群

groupadd mysql

useradd -r -g mysql -s /bin/false mysql


5 修改目录权限


chown -R mysql:mysql /usr/local/mysql


6 创建my.cnf

vim /etc/my.cnf


[mysqld]
server_id=10
port = 3306
user = mysql
character-set-server = utf8mb4
default_storage_engine = innodb
log_timestamps = SYSTEM
socket = /tmp/mysql.sock
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
pid-file = /usr/local/mysql/data/mysql.pid
max_connections = 1000
max_connect_errors = 1000
table_open_cache = 1024
max_allowed_packet = 128M
open_files_limit = 65535
#####====================================[innodb]==============================
innodb_buffer_pool_size = 1024M
innodb_file_per_table = 1
innodb_write_io_threads = 4
innodb_read_io_threads = 4
innodb_purge_threads = 2
innodb_flush_log_at_trx_commit = 1
innodb_log_file_size = 512M
innodb_log_files_in_group = 2
innodb_log_buffer_size = 16M
innodb_max_dirty_pages_pct = 80
innodb_lock_wait_timeout = 30
innodb_data_file_path=ibdata1:1024M:autoextend


#####====================================[log]==============================
log_error = /usr/local/mysql/log/mysql-error.log 
slow_query_log = 1
long_query_time = 1 
slow_query_log_file = /usr/local/mysql/log/mysql-slow.log


sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES




7 初始化数据库

bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data  --innodb_undo_tablespaces=3 --explicit_defaults_for_timestamp

 如果配置了my.cnf的log_error,那么初始密码在log_error文件中,否则会打印出来,先保存下,万一没保存也没关系

8 配置启动文件

cp support-files/mysql.server /etc/init.d/mysql
chkconfig --add mysql
chkconfig mysql on


9 配置环境变量

mysql_home=/usr/local/mysql
PATH=$PATH:$mysql_home/bin

10 启动服务
/etc/init.d/mysql start
 
登录用户 
mysql -uroot -p
输入之前的的密码


如果忘记或者提示ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
# /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> UPDATE user SET authentication_string=PASSWORD('newpassword') where USER='root'
mysql> FLUSH PRIVILEGES;
mysql> quit;
# /etc/init.d/mysql restart
# mysql -uroot -p
Enter password: <输入新设的密码newpassword>


登录成功之后输入 show databases; 会提示
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
重新设置密码
alter user 'root'@'localhost' identified by 'mysql';
flush privileges;






0 0
原创粉丝点击