mysql安装

1、mysql-5.7.27

 

2、安装步骤

tar zxvf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz

 

解压完成后,可以看到当前目录下多了一个解压文件,移动该文件到/usr/local/下,并将文件夹名称修改为mysql。

命令如下:

 mv mysql-5.7.27-linux-glibc2.12-x86_64 /usr/local/
 cd /usr/local/
 mv mysql-5.7.27-linux-glibc2.12-x86_64 mysql
 mkdir /usr/local/mysql/data

 

更改mysql目录下所有的目录及文件夹所属的用户组和用户,以及权限

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

 

编译安装并初始化mysql,务必记住初始化输出日志末尾的密码(数据库管理员临时密码)

 

cd /usr/local/mysql/bin
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

 

记录下临时密码

 

编辑配置文件my.cnf

vi /etc/my.cnf

 

[mysqld]

datadir=/usr/local/mysql/data

port=3306

socket=/tmp/mysql.sock

basedir=/usr/local/mysql

character-set-server=utf8

user=root

group_concat_max_len=-1

lower_case_table_names=1

innodb_file_per_table=on

innodb_lock_wait_timeout=120

innodb_buffer_pool_size=1G

innodb_log_buffer_size=16M

innodb_thread_concurrency=16

 

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

# Settings user and group are ignored when systemd is used.

# If you need to run mysqld under a different user or group,

# customize your systemd unit file for mariadb according to the

# instructions in http://fedoraproject.org/wiki/Systemd

 

[mysqldump]

quick

max_allowed_packet=32M

 

[mysqld_safe]

#log-error=/var/log/mariadb/mariadb.log

#pid-file=/var/run/mariadb/mariadb.pid

 

[client]

loose-default-character-set=utf8

 

测试启动mysql服务器

/usr/local/mysql/support-files/mysql.server start

 

添加软连接,并重启mysql服务

ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
 ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
 service mysql restart

 

 

登录mysql,修改密码(密码为之前生成的临时密码)

mysql -u root -p
 set password for root@localhost = password('xxxb_cqq');

 

开放远程连接

use mysql;
update user set user.Host='%' where user.User='root';
flush privileges;

 

设置开机自动启动

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig --list

 

 

安装报错情况可参考链接:

https://www.jianshu.com/p/276d59cbc529

 

3、mysql理论

3.1 概念

ACID:atomicity(原子性)、consistency(一致性)、isolation(隔离性)、durability(持久性)

  • A 一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作,这就是事务的原子性。
  • C 数据库总是从一个一致性的状态转换到另外一个一致性的状态。
  • I 一个事务所做的修改在最终提交以前,对其他事务是不可见的。
  • D 一旦事务提交,则其所做的修改就会永久保存到数据库中。

死锁

指两个或者多个事务在同一资源上相互占用,并请求锁定对方占用的资源,从而导致恶性循环的现象。InnoDB目前处理死锁的方法是将持有最少行级排它锁的事务进行回滚。

事务日志

存储引擎在修改表的数据时,只需要修改其内存拷贝,再把该修改行为记录到持久在硬盘上的事务日志中,而不用每次都将修改的数据本身持久到磁盘。事务日志采用追加方式,写日志的操作是磁盘上一小块区域内的顺序IO,不需要在多个地方移动磁头,相对来说快一点。最后,再通过存储引擎把这块数据写到库占用的磁盘内。

3.2 误区

update、delete、insert不需要commit,rollback也不会有用。commit,rollback会在事务内部执行时候有效,会释放该事务占用的锁。

posted @ 2022-07-06 17:38  超龄码农  阅读(26)  评论(0编辑  收藏  举报