1.首先设置root密码利用现有管理员帐户登陆Ub untu在终端执行命令 sudopasswd root接着输入密码和root密码重复密码。这样就有了可用的root用户。
2.默认情况是不允许用ro o t帐号直接登录图形界面的。这可以通过修改
/etc/gdm/gdm.c onf文件来允许root直接登录在该文件中找到Allo wRootfalse将其改为AllowRoot=true切换用户就可以了。
注有的系统中gdm.conf默认是只读属性修改前可使用sudo chmod 777/etc/gdm/gdm.conf修改文件权限。
3.ub untu默认不支持root窗口登录进入系统系统管理登录窗口安全选择允许本地系统管理员登录。这时重启就可以在登录窗口登录root了。
其他
当你使用完毕后屏蔽ro o t帐号使用sudo passwd-l ro ot
这个将锁住ro o t帐号。
如何在终端模式下切换到ro o t身份sudo-s -H
Password:rp m文件是red hat linux专有文件格式必须转成deb格式Ubuntu
三种安装方式
1.从网上安装sudo apt-get install mysql-server。装完已经自动配置好环境变量可以直接使用mysql的命令。
注建议将/etc/apt/so urce.lis t中的c n改成us美国的服务器比中国的快很多。
2.安装离线包 以mysq l-5.0.45-linux-i686-ic c-glibc23.tar.gz为例。
3.二进制包安装安装完成已经自动配置好环境变量可以直接使用mysql命令
网上安装和二进制包安装比较简单重点说安装离线包。
1.groupadd mysql
2.mkdir/home/mysql
3.useradd-g mysql -d/home/mysql mysql
4.copy mys ql-5.0.45-linux-i686-icc-glibc 23.tar.gz到/usr/local目录
5.解压 tar zxvf mysql-5.0.45-linux-i686-icc-glibc23.tar.gz
6. ln-s mysql-5.0.45-linux-i686-icc-glibc23 mysql
7.cd/usr/local/mysql
8.chown-R mysql .
9.chgrp-R mysql .
10. scripts/mysql_install_db--user=mysql (一定要在mysql目录下执行注意输出的文字里边有修改root密码和启动mysql的命令
11.为root设置密码 ./b in/mys qladmin-u root pass word'passw0rd'
配置和管理msyq l
1.修改mysql最大连接数 cp support-files/my-medium.cnf./my.cnfvim my.cnf增加或修改max_connections=1024
关于my.cnf mysql按照下列顺序搜索my.cnf:/etc,mysql安装目录安装目录下的d ata。 /e tc下的是全局设置。
2.启动mysql /usr/local/mysql/bin/mysqld_safe --user=mysql&
查看mysql版本 mysqladmin-u root -p version
注 网上安装或者二进制安装的可以直接使用如下命令启动和停止mysql:/etc/init.d/mysq l start|stop|restart
3.停止mys ql my sqladmin-uroot -ppassw0rd shutdo wn注意 u,p后没有空格
4.设置mysql自启动把启动命令加入/etc/rc.local文件中
5.允许ro o t远程登陆
1本机登陆mysql mysql -u root-p -p一定要有 改变数据库use mysql;
2从所有主机 grant all privileges on*.*to root@"%" identified by"passw0rd"with grant option;
3从指定主机 grant allprivileges on*.*toroot@"192.168.11.205" identified by"passw0rd"with grant option;flush privileges;
4)进mysql库查看host为%的数据是否添加 use mysql; select* from user;
6.创建数据库创建us er
1)建库 create database test 1;
2)建用户赋权 grant all privileges on test1.* to user_te st@"%" identifiedby"pas sw0rd"with grant option;
3删除数据库 drop databa se te st1;
7.删除权限
1)revoke all privileges on test1.* from test1@"%";
2)use mysql;
3)delete from user where user="root"and host="%";
4)flush privilege s;
8.显示所有的数据库 show databases;显示库中所有的表 show tables;
9.远程登录mysql mysql -h ip-uuser -p
10.设置字符集以ut f8为例
1查看当前的编码 show variables like'character%';
2) 修改my.cnf在[c lie nt]下添加default-charac ter-s et=utf8
3在[se rver]下添加default-character-set=utf8 init_conne ct='SET NAMESut f8;'
4重启mysql。
注只有修改/etc下的my.cnf才能使c lient的设置起效安装目录下的设置只能使server的设置有效。
二进制安装的修改/etc/mysq l/my.c nf即可
11.旧数据升级到utf8 旧数据以latin1为例
1 导出旧数据 mys qldump--de fault-characte r-set=latin1 -hloca lho st -uroo t-B dbname--tables old_table>old.sql
2转换编码(Linux和UNIX) iconv-t utf-8 -f gb2312-c old.sql>new.sql
这里假定原表的数据为gb 2312也可以去掉-f让iconv自动判断原来的字符集。
3 导入修改new.sql在插入或修改语句前加一句话 "SET NAMESut f8;"并修改所有的gb 2312为ut f8保存。mysql-hlocalhost -uroot-p dbname
如果报max_allowed_packet的错误是因为文件太大 mysql默认的这个参数是1M修改my.cnf中的值即可需要重启mysql)。
12.支持utf8的客户端Mysq l-Fro nt,N avic at,P hpMyAdmin Linux She ll 连接后执行SET NAMES utf8;后就可以读写utf8的数据了。 10.4设置完毕后就不用再执行这句话了
13.备份和恢复
备份单个数据库 mysqldump-uroot -p-B dbname>dbname.sql
备份全部数据库 mysq ldump-uroo t -p--all-datab ases>a ll.sql
备份表 mysqldump-uroot-p-B dbname--table tablename>tablename.sql
恢复数据库mysql -uroot-p
恢复表 mysql-uroot-p dbname
14.复制
Mys q l支持单向的异步复制 即一个服务器做主服务器其他的一个或多个服务器做从服务器。复制是通过二进制日志实现的主服务器写入从服务器读取。可以实现多个主 服务器但是会碰到单个服务器不曾遇到的问题不推荐 。
1).在主服务器上建立一个专门用来做复制的用户 grant rep licat io nslave on*.*to'rep licationuser'@'192.168.0.87' identified by'iverson';
2).刷新主服务器上所有的表和块写入语句 flush tables with read lock;然后读取主服务器上的二进制二进制文件名和分支 SHOW MASTER STATUS;将Fil e和Po sitio n的值记录下来。记录后关闭主服务器mys q ladmin-uroot -ppassw0rdshut down
如果输出为空说明服务器没有启用二进制日志在my.cnf文件中[mysqld]下添加log-bin=mysql-bin重启后即有。
3).为主服务器建立快照snapshot
需要为主服务器上的需要复制的数据库建立快照Windows可以使用zip格式 L inux和Unix最好使用t ar命令。然后上传到从服务器mysq l的数据目录并解压。cd mysql-data-dirtar cvzf mysql-snapshot.tar ./mydb
注意快照中不应该包含任何日志文件或*.info文件只应该包含要复制的数据库的数据文件*.frm和*.opt文件。
可以用数据库备份(mysq ldump)为从服务器做一次数据恢复保证数据的一致性。
4).确认主服务器上my.cnf文件的[mysqld]section包含log-bin选项和server-id并启动主服务器
[mysqld]log-bin=mysql-binserver-id=1
5).停止从服务器加入server-id然后启动从服务器
[mysqld]server-id=2
注这里的server-id是从服务器的id必须与主服务器和其他从服务器不一样。
可以在从服务器的配置文件中加入read-only选项这样从服务器就只接受来自主服务器的SQL确保数据不会被其他途经修改。
6).在从服务器上执行如下语句用系统真实值代替选项change master to MASTER_HO ST='ma ster_host',
MAS TER_U SER='rep licatio n_us er',MASTER_PAS SWORD='rep licatio n_p wd',MAS TER_LOG_FILE='recorded_log_file_name',MASTER_LOG_P OS=log_position;
7).启动从线程 mysql>START SLAVE;停止从线程 stop slave; 注意主服务器的防火墙应该允许3306端口连接
验证此时主服务器和从服务器上的数据应该是一致的在主服务器上插入修改删除数据都会更新到从服务器上建表删表等也是一样的。