Forum


Notice to all users

We are migrating towards a new forum system located at community.teamspeak.com, as such this forum will become read-only on January 29, 2020

Page 2 of 8 FirstFirst 1234 ... LastLast
Results 16 to 30 of 108
  1. #16
    Join Date
    June 2002
    Location
    Netherlands
    Posts
    1,049
    KIDINK^: Did you run the mariadb_fix_latin_utf8.sql script on a mysql client connected to your teamspeak database?

  2. #17
    Join Date
    November 2011
    Location
    Belarus
    Posts
    142
    Quote Originally Posted by nwerensteijn View Post
    KIDINK^: Did you run the mariadb_fix_latin_utf8.sql script on a mysql client connected to your teamspeak database?
    because i read trough lines.
    now i restore my database and its fixed now. thank you!

  3. #18
    Join Date
    June 2002
    Location
    Netherlands
    Posts
    1,049
    Quote Originally Posted by hunterpl View Post
    Hello Dear Staff Teamspeak 3
    MySQL said: Documentation
    #1300 - Invalid utf8mb4 character string: 'D34C45'
    How many times did it say that? There is a chance that you already had some bad characters in the client names for example. Did you use a special libmysqlclient before?

    I would like to know if you mean the script could not convert one or a few rows, or if it stopped working after the error, and leave things half converted

  4. #19
    Join Date
    December 2010
    Location
    United Kingdom
    Posts
    340
    Quote Originally Posted by nwerensteijn View Post
    How many times did it say that? There is a chance that you already had some bad characters in the client names for example. Did you use a special libmysqlclient before?

    I would like to know if you mean the script could not convert one or a few rows, or if it stopped working after the error, and leave things half converted
    Hello !

    only once when I just execute in PHPMYADMIN.

    Web server

    lighttpd/1.4.31
    Database client version: libmysql - 5.5.38
    PHP extension: mysqli

    Database server

    Server: Localhost via UNIX socket
    Server type: MariaDB
    Server version: 5.5.39-MariaDB-1~wheezy - mariadb.org binary distribution
    Protocol version: 10
    User: [email protected]
    Server charset: UTF-8 Unicode (utf8)

    Today I just execute the script again and works well dunno how, during when server is Online, before when I had this problem server were Offline. I tried couple of times always had the error what I wrote in previously post yesterday, showed me error once with record:
    MySQL said: Documentation
    #1300 - Invalid utf8mb4 character string: 'D34C45'

    My LOG from PHPMYADMIN:

    Code:
    -- script to fix the problem that utf8 data from ts3 client was interpreted as latin1.
    -- note that this script requires a user that is allowed to create temporary tables
    
    -- undo latin1->utf8 reencoding of utf8 data
    UPDATE channel_properties SET
      ident = CONVERT(CAST(CONVERT(ident USING 'latin1') AS BINARY) USING 'utf8mb4'),
      value = CONVERT(CAST(CONVERT(value USING 'latin1') AS BINARY) USING 'utf8mb4');# MySQL returned an empty result set (i.e. zero rows).
    
    
    UPDATE client_properties SET
      ident = CONVERT(CAST(CONVERT(ident USING 'latin1') AS BINARY) USING 'utf8mb4'),
      value = CONVERT(CAST(CONVERT(value USING 'latin1') AS BINARY) USING 'utf8mb4');# MySQL returned an empty result set (i.e. zero rows).
    
    
    UPDATE clients SET
      client_unique_id = CONVERT(CAST(CONVERT(client_unique_id USING 'latin1') AS BINARY) USING 'utf8mb4'),
      client_nickname = CONVERT(CAST(CONVERT(client_nickname USING 'latin1') AS BINARY) USING 'utf8mb4'),
      client_login_name = CONVERT(CAST(CONVERT(client_login_name USING 'latin1') AS BINARY) USING 'utf8mb4'),
      client_login_password = CONVERT(CAST(CONVERT(client_login_password USING 'latin1') AS BINARY) USING 'utf8mb4'),
      client_lastip = CONVERT(CAST(CONVERT(client_lastip USING 'latin1') AS BINARY) USING 'utf8mb4');# 5 rows affected.
    
    
    UPDATE groups_channel SET
      name = CONVERT(CAST(CONVERT(name USING 'latin1') AS BINARY) USING 'utf8mb4');# MySQL returned an empty result set (i.e. zero rows).
    
    
    UPDATE groups_server SET
      name = CONVERT(CAST(CONVERT(name USING 'latin1') AS BINARY) USING 'utf8mb4');# MySQL returned an empty result set (i.e. zero rows).
    
    
    UPDATE perm_channel SET
      perm_id = CONVERT(CAST(CONVERT(perm_id USING 'latin1') AS BINARY) USING 'utf8mb4');# MySQL returned an empty result set (i.e. zero rows).
    
    
    UPDATE perm_channel_clients SET
      perm_id = CONVERT(CAST(CONVERT(perm_id USING 'latin1') AS BINARY) USING 'utf8mb4');# MySQL returned an empty result set (i.e. zero rows).
    
    
    UPDATE perm_channel_groups SET
      perm_id = CONVERT(CAST(CONVERT(perm_id USING 'latin1') AS BINARY) USING 'utf8mb4');# MySQL returned an empty result set (i.e. zero rows).
    
    
    UPDATE perm_client SET
      perm_id = CONVERT(CAST(CONVERT(perm_id USING 'latin1') AS BINARY) USING 'utf8mb4');# MySQL returned an empty result set (i.e. zero rows).
    
    
    UPDATE perm_server_group SET
      perm_id = CONVERT(CAST(CONVERT(perm_id USING 'latin1') AS BINARY) USING 'utf8mb4');# MySQL returned an empty result set (i.e. zero rows).
    
    
    UPDATE bindings SET
      ip = CONVERT(CAST(CONVERT(ip USING 'latin1') AS BINARY) USING 'utf8mb4');# MySQL returned an empty result set (i.e. zero rows).
    
    
    UPDATE server_properties SET
      ident = CONVERT(CAST(CONVERT(ident USING 'latin1') AS BINARY) USING 'utf8mb4'),
      value = CONVERT(CAST(CONVERT(value USING 'latin1') AS BINARY) USING 'utf8mb4');# 2 rows affected.
    
    
    UPDATE servers SET
      server_machine_id = CONVERT(CAST(CONVERT(server_machine_id USING 'latin1') AS BINARY) USING 'utf8mb4');# MySQL returned an empty result set (i.e. zero rows).
    
      
    UPDATE tokens SET
      token_key = CONVERT(CAST(CONVERT(token_key USING 'latin1') AS BINARY) USING 'utf8mb4'),
      token_description = CONVERT(CAST(CONVERT(token_description USING 'latin1') AS BINARY) USING 'utf8mb4'),
      token_customset = CONVERT(CAST(CONVERT(token_customset USING 'latin1') AS BINARY) USING 'utf8mb4');# MySQL returned an empty result set (i.e. zero rows).
    
    
    UPDATE messages SET
      message_from_client_uid = CONVERT(CAST(CONVERT(message_from_client_uid USING 'latin1') AS BINARY) USING 'utf8mb4'),
      message_subject = CONVERT(CAST(CONVERT(message_subject USING 'latin1') AS BINARY) USING 'utf8mb4'),
      message_msg = CONVERT(CAST(CONVERT(message_msg USING 'latin1') AS BINARY) USING 'utf8mb4');# MySQL returned an empty result set (i.e. zero rows).
    
    
    UPDATE complains SET
      complain_message = CONVERT(CAST(CONVERT(complain_message USING 'latin1') AS BINARY) USING 'utf8mb4'),
      complain_hash = CONVERT(CAST(CONVERT(complain_hash USING 'latin1') AS BINARY) USING 'utf8mb4');# MySQL returned an empty result set (i.e. zero rows).
    
    
    UPDATE bans SET
      ban_ip = CONVERT(CAST(CONVERT(ban_ip USING 'latin1') AS BINARY) USING 'utf8mb4'),
      ban_name = CONVERT(CAST(CONVERT(ban_name USING 'latin1') AS BINARY) USING 'utf8mb4'),
      ban_uid = CONVERT(CAST(CONVERT(ban_uid USING 'latin1') AS BINARY) USING 'utf8mb4'),
      ban_invoker_uid = CONVERT(CAST(CONVERT(ban_invoker_uid USING 'latin1') AS BINARY) USING 'utf8mb4'),
      ban_invoker_name = CONVERT(CAST(CONVERT(ban_invoker_name USING 'latin1') AS BINARY) USING 'utf8mb4'),
      ban_reason = CONVERT(CAST(CONVERT(ban_reason USING 'latin1') AS BINARY) USING 'utf8mb4'),
      ban_hash = CONVERT(CAST(CONVERT(ban_hash USING 'latin1') AS BINARY) USING 'utf8mb4');# MySQL returned an empty result set (i.e. zero rows).
    
    
    UPDATE instance_properties SET
      string_id = CONVERT(CAST(CONVERT(string_id USING 'latin1') AS BINARY) USING 'utf8mb4'),
      ident = CONVERT(CAST(CONVERT(ident USING 'latin1') AS BINARY) USING 'utf8mb4'),
      value = CONVERT(CAST(CONVERT(value USING 'latin1') AS BINARY) USING 'utf8mb4');# MySQL returned an empty result set (i.e. zero rows).
    
    
    UPDATE custom_fields SET
      ident = CONVERT(CAST(CONVERT(ident USING 'latin1') AS BINARY) USING 'utf8mb4'),
      value = CONVERT(CAST(CONVERT(value USING 'latin1') AS BINARY) USING 'utf8mb4');# MySQL returned an empty result set (i.e. zero rows).
    
      
    -- deduplicate server and channelgroup names that could have occured because of truncation
    CREATE TEMPORARY TABLE groups_server_dups ENGINE=MEMORY AS (select server_id, name from groups_server group by server_id, name having count(*)>1);# MySQL returned an empty result set (i.e. zero rows).
    
    
    UPDATE groups_server u
        INNER JOIN groups_server_dups j ON
        j.server_id = u.server_id and j.name=u.name
        SET u.name = CONCAT(u.name,u.group_id);# MySQL returned an empty result set (i.e. zero rows).
    
    
    DROP TABLE groups_server_dups;# MySQL returned an empty result set (i.e. zero rows).
    
    
    CREATE TEMPORARY TABLE groups_channel_dups ENGINE=MEMORY AS (select server_id, name from groups_channel group by server_id, name having count(*)>1);# MySQL returned an empty result set (i.e. zero rows).
    
    
    UPDATE groups_channel u
        INNER JOIN groups_channel_dups j ON
        j.server_id = u.server_id and j.name=u.name
        SET u.name = CONCAT(u.name,u.group_id);# MySQL returned an empty result set (i.e. zero rows).
    
    
    DROP TABLE groups_channel_dups;# MySQL returned an empty result set (i.e. zero rows).
    Before I used old mysqllib15off, just deleted completely yesterday and installed new MariaDB client and server.
    Last edited by hunterpl; August 8th, 2014 at 10:01 PM.

  5. #20
    Join Date
    May 2012
    Location
    The 3rd dimension
    Posts
    956
    Ah finally a new version to experiment with! I was kind of hoping for some more user-level features/abilities but still, having something new to test is always nice. Thanks dev team.

  6. #21
    Join Date
    December 2009
    Location
    no
    Posts
    5
    So what if I am running MariaDB 10 already... will I just need to run the conversion?
    (Not testing the pre-release, just planning ready for stable release).

  7. #22
    Join Date
    June 2002
    Location
    Netherlands
    Posts
    1,049
    Quote Originally Posted by Y3K-Daniel View Post
    So what if I am running MariaDB 10 already... will I just need to run the conversion?
    yes.
    The first script 'convert_mysql_to_mariadb.sql' converts an existing database. Basically the conversion is changing the currently used character set to 'utf8mb4'. Actually it has nothing to do with differences between MySQL or MariaDB and more about design changes in TeamSpeak. This script also sets a value in the DB. The TS3 server will not start without this value. This is to make sure you run this script.

    The second script, 'mariadb_fix_latin_utf8.sql' fixes bad character storage in the DB as a result of a bug in the previous TeamSpeak 3 servers.

    It is necessary to run the first script.
    It is necessary to run the second script, unless the libmysqlclient on the system where ts3 Server ran had a compile-time default character set of 'utf8'. In practice this means everyone has to run this script.

  8. #23
    Join Date
    February 2012
    Location
    Germany
    Posts
    577
    The server 3.0.11 seems to run fine under Centos 6.5 with sqlite here on a test server, upgrading from an existing 3.0.10.3 with sqlite.

  9. #24
    Join Date
    May 2012
    Location
    The 3rd dimension
    Posts
    956

    I like to customize the permissions on ServerQuery client to allow them to see into extra channels and various other things. But now I am completely unable to tweak any permissions on ServerQuery client permissions area. I cannot alter channel subscribe, query client view power, nothing will let me change it on a brand new server... This is not good.

    Edit:

    Nor can I even assign server groups to it to allow a customized ability to see or block ability to see into channels from query clients and websites. This is really bad and has crippled my ability to keep areas private only from query clients or customize things in general for query clients. I hope this gets resolved. There is currently no way to alter anything on it with this beta. This is really bad.

  10. #25
    Join Date
    June 2008
    Posts
    18,513
    And what does not work exactly with the Guest Query?

    The only change was, that negate (set in Server Query Guest) overwrites the normal Guest permission. You still can do the same things as before as long negate isn't set in "Server Query Guest" group.

    -----------------------
    I hope you are not talking about
    1. Editing query permissions with the client -> We do not support this way to modify Query groups
    2. Insufficient permission modify power -> Login into the Query as serveradmin to modify these Query Guest permissions.
    When sending me private messages: Please make sure to include reference link to your forum thread or post.

    TeamSpeak FAQ || What should i report, when i open a client thread?

  11. #26
    Join Date
    May 2012
    Location
    The 3rd dimension
    Posts
    956
    Here are the steps.

    • Create a new fresh beta server
    • Obtain Server Admin from using the token
    • Go to client permissions
    • Type in ServerQuery and press enter
    • Attempt to give this query user a channel subscribe power, or alter it's query view clients or anything else.

    Result: insufficient client permissions (failed on i_client_needed_permission_modify_power)

    Edit: You need to login once to the server's query interface as an anonymous query client so you can edit it's permissions I think, otherwise it does not exist.

  12. #27
    Join Date
    October 2003
    Location
    Germany
    Posts
    2,527
    Quote Originally Posted by Morthawt View Post
    • Create a new fresh beta server
    • Obtain Server Admin from using the token
    • Go to client permissions
    • Type in ServerQuery and press enter
    • Attempt to give this query user a channel subscribe power, or alter it's query view clients or anything else.
    The error message you're getting is perfectly normal as ServerQuery guest clients have a i_client_needed_permission_modify_power of 100. You can in fact only modify the permissions the way you want to if you have a i_client_permission_modify_power of 100 or more... This worked for you in previous server releases as there was a permission system bug that caused the server to (partially) ignore the default ServerQuery group as soon as you selected a virtual server... meaning that the permissions of both groups were applied but handled in a wrong way (overwritten with lower values, negated ignored, etc). This has been fixed and the permissions now work as they were originally intended to.

    Anyway... your way is actually a very weird way (that again never should have worked) to do this as this requires 1) a ServerQuery guest client connected at least one time and 2) might not be permanent as the ServerQuery guest db entry will be purged due to inactivity.

    Why not simply assigning the permissions you need to the ServerQuery guest group (if you need them to be global) or to the regular guest group (if you want to do this on a per-server basis)? The fixed permissions also give you much more flexibility as you can work with the negated flag now.

  13. #28
    Join Date
    September 2012
    Posts
    6,079
    Quote Originally Posted by ScP View Post
    The error message you're getting is perfectly normal
    What he said..
    In addition to that, if you want to give one specific query client additional permissions, you need to be able to distinguish them and thus they're required to log in.
    When sending PMs please make sure to include a reference link to the thread in question in the body of your message.

  14. #29
    Join Date
    May 2012
    Location
    The 3rd dimension
    Posts
    956
    Quote Originally Posted by ScP View Post
    The error message you're getting is perfectly normal as ServerQuery guest clients have a i_client_needed_permission_modify_power of 100. You can in fact only modify the permissions the way you want to if you have a i_client_permission_modify_power of 100 or more... This worked for you in previous server releases as there was a permission system bug that caused the server to (partially) ignore the default ServerQuery group as soon as you selected a virtual server... meaning that the permissions of both groups were applied but handled in a wrong way (overwritten with lower values, negated ignored, etc). This has been fixed and the permissions now work as they were originally intended to.

    Anyway... your way is actually a very weird way (that again never should have worked) to do this as this requires 1) a ServerQuery guest client connected at least one time and 2) might not be permanent as the ServerQuery guest db entry will be purged due to inactivity.

    Why not simply assigning the permissions you need to the ServerQuery guest group (if you need them to be global) or to the regular guest group (if you want to do this on a per-server basis)? The fixed permissions also give you much more flexibility as you can work with the negated flag now.
    How do you assign them to a serverquery guest group?

    Plus you may think this is weird, but for me it has worked out perfectly. This way I can allow websites to see more channels than people can when they are in the server to prevent spam of more important areas. By customizing the permissions of ServerQuery I have been able to get the exact amount of web exposure and to ensure people are adding to the server's online users count while preventing trolls and spammers from messaging people in those channels because users themselves cannot enter or see who is inside. So if you know of a way I can assign permissions to a serverquery guest group I would do that. Bare in mind that I have a rented server so I do not have global access to the whole thing.

    What ever I find out about permissions, I always maximize my functionality by making the most of them. This has lead to some things I do being called weird or "You are using this in a way that was not intended by the developers" but the fact is I figure things out and get the functionality I desire and only TeamSpeak 3 can do these things. It is not nice when something breaks that I have been using for years.

  15. #30
    Join Date
    October 2003
    Location
    Germany
    Posts
    2,527
    Quote Originally Posted by Morthawt View Post
    How do you assign them to a serverquery guest group?
    There's not A ServerQuery guest group... only THE ServerQuery guest group. This GLOBAL group (usually ID 1) is used for every ServerQuery client connected to a virtual server unless the user is authenticated.

    Lets assume that you have a script that somehow requres the b_virtualserver_clientlist permission. Here are some possibilities on how to configure this:

    1. Allow execution of the clientlist command on ALL virtual servers

    Code:
    ServerQuery Guest  |  Value: 1, Skip: 0, Negated: 0
    Server Guest       |  not set
    2. Allow execution of the clientlist command on SINGLE virtual servers

    Code:
    ServerQuery Guest  |  not set
    Server Guest       |  Value: 1, Skip: 0, Negated: 0
    3. Allow execution of the clientlist command on ALL virtual servers EXCEPT ONE

    Code:
    ServerQuery Guest  |  Value: 1, Skip: 0, Negated: 0
    Server Guest       |  Value: 0, Skip: 0, Negated: 1
    The is the way to configure this intended by the devs and this was possible since the initial release of TS3. However... there's one specific case that caused issues due to the server bug I mentioned in my last posting.

    Let's say your regular guest group has the ability to create temporary channels on your server... as you can see in the three examples above, when a guest can create channels, a ServerQuery guest can also create channels. This lead to people generating spam by creating a lot of channels or sending messages with the typical "Join my Server 1.2.3.4 it's FREE" stuff.

    The easiest way to prevent ServerQuery guests from creating channels is to configure the b_channel_create_temporary permission like this:

    Code:
    ServerQuery Guest  |  Value: 0, Skip: 0, Negated: 1
    Server Guest       |  does not matter
    The negated value of 0 configured for the ServerQuery guest group overwrites the values coming from other groups, thus preventing the creation of temporary channels. However, this did not work in server releases prior to 3.0.11 as the server ignored the negated and skip flags on the ServerQuery guest group and the permission values were overwritten.

    The way you configured this in the past is still possible when you lower the value for i_client_needed_permission_modify_power on the ServerQuery guest group to 75. But I'd strongly recommend not to do this.

    In short... this is a good and very important fix that provides greater flexibility and security (as regular ServerAdmins were never meant to be able to modify ServerQuery groups).

    Quote Originally Posted by Morthawt View Post
    Plus you may think this is weird, but for me it has worked out perfectly.
    My apologies...

    Last edited by ScP; August 11th, 2014 at 02:33 PM.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. [PreRelease] TeamSpeak 3 Server 3.0.11.4 Beta
    By Matthias B in forum Archive
    Replies: 3
    Last Post: August 21st, 2015, 08:54 AM
  2. Replies: 3
    Last Post: May 10th, 2015, 05:56 PM
  3. [PreRelease] TeamSpeak 3 Server 3.0.10
    By Chris in forum Archive
    Replies: 18
    Last Post: September 28th, 2013, 08:57 PM
  4. [PreRelease] TeamSpeak 3 Server 3.0.9
    By dante696 in forum Archive
    Replies: 16
    Last Post: September 12th, 2013, 09:50 AM
  5. [PreRelease] TeamSpeak 3 Server 3.0.8
    By Chris in forum Archive
    Replies: 53
    Last Post: August 11th, 2013, 11:21 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •